mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
copy all toXML() from master commit 4b82c3a0c4 into the current branch, because the new concept will be used only for user properties
This commit is contained in:
@@ -90,12 +90,12 @@ bool BorderProperties::operator!=(const BorderProperties &bp) {
|
||||
\~French Element XML auquel seront ajoutes des attributs
|
||||
*/
|
||||
void BorderProperties::toXmlPriv(QDomElement& e) const {
|
||||
e.appendChild(QETXML::createXmlProperty("cols", columns_count));
|
||||
e.appendChild(QETXML::createXmlProperty("colsize", columns_width));
|
||||
e.appendChild(QETXML::createXmlProperty("rows", rows_count));
|
||||
e.appendChild(QETXML::createXmlProperty("rowsize", rows_height));
|
||||
e.appendChild(QETXML::createXmlProperty("displayrows", display_rows));
|
||||
e.appendChild(QETXML::createXmlProperty("displaycols", display_columns));
|
||||
e.setAttribute("cols", columns_count);
|
||||
e.setAttribute("colsize", QString("%1").arg(columns_width));
|
||||
e.setAttribute("rows", rows_count);
|
||||
e.setAttribute("rowsize", QString("%1").arg(rows_height));
|
||||
e.setAttribute("displaycols", display_columns ? "true" : "false");
|
||||
e.setAttribute("displayrows", display_rows ? "true" : "false");
|
||||
}
|
||||
|
||||
/*!RETURNS True
|
||||
|
||||
@@ -215,12 +215,10 @@ void SingleLineProperties::drawPen(QPainter *painter,
|
||||
*/
|
||||
void SingleLineProperties::toXmlPriv(QDomElement& e) const {
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("ground", hasGround));
|
||||
e.appendChild(QETXML::createXmlProperty("neutral", hasNeutral));
|
||||
e.appendChild(QETXML::createXmlProperty("phase", phases));
|
||||
|
||||
if (isPen())
|
||||
e.appendChild(QETXML::createXmlProperty("pen", true));
|
||||
e.setAttribute("ground", hasGround ? "true" : "false");
|
||||
e.setAttribute("neutral", hasNeutral ? "true" : "false");
|
||||
e.setAttribute("phase", phases);
|
||||
if (isPen()) e.setAttribute("pen", "true");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -284,42 +282,44 @@ ConductorProperties::~ConductorProperties()
|
||||
void ConductorProperties::toXmlPriv(QDomElement& e) const
|
||||
{
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("type", typeToString(type)));
|
||||
e.appendChild(QETXML::createXmlProperty("color", color));
|
||||
e.setAttribute("type", typeToString(type));
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("bicolor", m_bicolor));
|
||||
e.appendChild(QETXML::createXmlProperty("color2", m_color_2));
|
||||
e.appendChild(QETXML::createXmlProperty("dash-size", m_dash_size));
|
||||
if (color != QColor(Qt::black))
|
||||
e.setAttribute("color", color.name());
|
||||
|
||||
if (type == Single)
|
||||
e.setAttribute("bicolor", m_bicolor? "true" : "false");
|
||||
e.setAttribute("color2", m_color_2.name());
|
||||
e.setAttribute("dash-size", QString::number(m_dash_size));
|
||||
|
||||
if (type == Single)
|
||||
{
|
||||
QDomDocument doc;
|
||||
e.appendChild(singleLineProperties.toXml(doc));
|
||||
QDomDocument doc = e.ownerDocument();
|
||||
singleLineProperties.toXml(doc);
|
||||
}
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("num", text));
|
||||
e.appendChild(QETXML::createXmlProperty("text_color", text_color));
|
||||
e.appendChild(QETXML::createXmlProperty("formula", m_formula));
|
||||
e.appendChild(QETXML::createXmlProperty("function", m_function));
|
||||
e.appendChild(QETXML::createXmlProperty("tension_protocol", m_tension_protocol));
|
||||
e.appendChild(QETXML::createXmlProperty("conductor_color", m_wire_color));
|
||||
e.appendChild(QETXML::createXmlProperty("conductor_section", m_wire_section));
|
||||
e.appendChild(QETXML::createXmlProperty("numsize", text_size));
|
||||
e.appendChild(QETXML::createXmlProperty("condsize", cond_size));
|
||||
e.appendChild(QETXML::createXmlProperty("displaytext", m_show_text));
|
||||
e.appendChild(QETXML::createXmlProperty("onetextperfolio", m_one_text_per_folio));
|
||||
e.appendChild(QETXML::createXmlProperty("vertirotatetext", verti_rotate_text));
|
||||
e.appendChild(QETXML::createXmlProperty("horizrotatetext", horiz_rotate_text));
|
||||
// TODO: implement
|
||||
//e.setAttribute("cable", m_cable);
|
||||
// e.setAttribute("bus", m_bus);
|
||||
QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
e.appendChild(QETXML::createXmlProperty("horizontal-alignment", me.valueToKey(m_horizontal_alignment)));
|
||||
e.appendChild(QETXML::createXmlProperty("vertical-alignment", me.valueToKey(m_vertical_alignment)));
|
||||
e.setAttribute("num", text);
|
||||
e.setAttribute("text_color", text_color.name());
|
||||
e.setAttribute("formula", m_formula);
|
||||
e.setAttribute("cable", m_cable);
|
||||
e.setAttribute("bus", m_bus);
|
||||
e.setAttribute("function", m_function);
|
||||
e.setAttribute("tension_protocol", m_tension_protocol);
|
||||
e.setAttribute("conductor_color", m_wire_color);
|
||||
e.setAttribute("conductor_section", m_wire_section);
|
||||
e.setAttribute("numsize", QString::number(text_size));
|
||||
e.setAttribute("condsize", QString::number(cond_size));
|
||||
e.setAttribute("displaytext", m_show_text);
|
||||
e.setAttribute("onetextperfolio", m_one_text_per_folio);
|
||||
e.setAttribute("vertirotatetext", QString::number(verti_rotate_text));
|
||||
e.setAttribute("horizrotatetext", QString::number(horiz_rotate_text));
|
||||
|
||||
QString conductor_style = writeStyle();
|
||||
if (!conductor_style.isEmpty())
|
||||
e.appendChild(QETXML::createXmlProperty("style", conductor_style));
|
||||
QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
e.setAttribute("horizontal-alignment", me.valueToKey(m_horizontal_alignment));
|
||||
e.setAttribute("vertical-alignment", me.valueToKey(m_vertical_alignment));
|
||||
|
||||
QString conductor_style = writeStyle();
|
||||
if (!conductor_style.isEmpty())
|
||||
e.setAttribute("style", conductor_style);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -103,22 +103,18 @@ void PartArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *options,
|
||||
@param xml_document : Xml document to use for create the xml element.
|
||||
@return : an xml element that describe this arc
|
||||
*/
|
||||
void PartArc::toXmlPriv(QDomElement& e) const
|
||||
void PartArc::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
e.setTagName("arc");
|
||||
QPointF top_left(sceneTopLeft());
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("x", top_left.x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", top_left.y()));
|
||||
e.appendChild(QETXML::createXmlProperty("width", rect().width()));
|
||||
e.appendChild(QETXML::createXmlProperty("height", rect().height()));
|
||||
|
||||
//to maintain compatibility with the previous version, we write the angle in degrees.
|
||||
e.appendChild(QETXML::createXmlProperty("start", m_start_angle / 16));
|
||||
e.appendChild(QETXML::createXmlProperty("angle", m_span_angle / 16));
|
||||
|
||||
|
||||
stylesToXml(e);
|
||||
xml_element.setTagName("arc");
|
||||
QPointF top_left(sceneTopLeft());
|
||||
xml_element.setAttribute("x", QString("%1").arg(top_left.x()));
|
||||
xml_element.setAttribute("y", QString("%1").arg(top_left.y()));
|
||||
xml_element.setAttribute("width", QString("%1").arg(rect().width()));
|
||||
xml_element.setAttribute("height", QString("%1").arg(rect().height()));
|
||||
//to maintain compatibility with the previous version, we write the angle in degrees.
|
||||
xml_element.setAttribute("start", QString("%1").arg(m_start_angle / 16));
|
||||
xml_element.setAttribute("angle", QString("%1").arg(m_span_angle / 16));
|
||||
stylesToXml(xml_element);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -51,7 +51,7 @@ class PartArc : public AbstractPartEllipse
|
||||
//Name and XML
|
||||
QString name() const override { return(QObject::tr("arc", "element part name")); }
|
||||
QString xmlName() const override { return(QString("arc")); }
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
bool fromXmlPriv (const QDomElement &) override;
|
||||
static bool valideXml(QDomElement& element);
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
|
||||
@@ -96,65 +96,60 @@ void PartDynamicTextField::handleUserTransformation(
|
||||
@param dom_doc
|
||||
@return
|
||||
*/
|
||||
void PartDynamicTextField::toXmlPriv(QDomElement& e) const
|
||||
void PartDynamicTextField::toXmlPriv(QDomElement& root_element) const
|
||||
{
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("x", pos().x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", pos().y()));
|
||||
e.appendChild(QETXML::createXmlProperty("z", zValue()));
|
||||
e.appendChild(QETXML::createXmlProperty("rotation", QET::correctAngle(rotation())));
|
||||
root_element.setAttribute("x", QString::number(pos().x()));
|
||||
root_element.setAttribute("y", QString::number(pos().y()));
|
||||
root_element.setAttribute("z", QString::number(zValue()));
|
||||
root_element.setAttribute("rotation", QString::number(QET::correctAngle(rotation())));
|
||||
root_element.setAttribute("font", font().toString());
|
||||
root_element.setAttribute("uuid", m_uuid.toString());
|
||||
root_element.setAttribute("frame", m_frame? "true" : "false");
|
||||
root_element.setAttribute("text_width", QString::number(m_text_width));
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("font", font().toString()));
|
||||
e.appendChild(QETXML::createXmlProperty("uuid", m_uuid));
|
||||
e.appendChild(QETXML::createXmlProperty("frame", m_frame));
|
||||
e.appendChild(QETXML::createXmlProperty("text_width", m_text_width));
|
||||
QMetaEnum me = DynamicElementTextItem::textFromMetaEnum();
|
||||
root_element.setAttribute("text_from", me.valueToKey(m_text_from));
|
||||
|
||||
QMetaEnum me = DynamicElementTextItem::textFromMetaEnum();
|
||||
e.appendChild(QETXML::createXmlProperty("text_from", me.valueToKey(m_text_from)));
|
||||
me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
if(this -> alignment() &Qt::AlignRight)
|
||||
root_element.setAttribute("Halignment", me.valueToKey(Qt::AlignRight));
|
||||
else if(this -> alignment() &Qt::AlignLeft)
|
||||
root_element.setAttribute("Halignment", me.valueToKey(Qt::AlignLeft));
|
||||
else if(this -> alignment() &Qt::AlignHCenter)
|
||||
root_element.setAttribute("Halignment", me.valueToKey(Qt::AlignHCenter));
|
||||
|
||||
me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
if(this -> alignment() &Qt::AlignRight)
|
||||
e.appendChild(QETXML::createXmlProperty("Halignment", me.valueToKey(Qt::AlignRight)));
|
||||
else if(this -> alignment() &Qt::AlignLeft)
|
||||
e.appendChild(QETXML::createXmlProperty("Halignment", me.valueToKey(Qt::AlignLeft)));
|
||||
else if(this -> alignment() &Qt::AlignHCenter)
|
||||
e.appendChild(QETXML::createXmlProperty("Halignment", me.valueToKey(Qt::AlignHCenter)));
|
||||
if(this -> alignment() &Qt::AlignBottom)
|
||||
root_element.setAttribute("Valignment", me.valueToKey(Qt::AlignBottom));
|
||||
else if(this -> alignment() & Qt::AlignTop)
|
||||
root_element.setAttribute("Valignment", me.valueToKey(Qt::AlignTop));
|
||||
else if(this -> alignment() &Qt::AlignVCenter)
|
||||
root_element.setAttribute("Valignment", me.valueToKey(Qt::AlignVCenter));
|
||||
|
||||
if(this -> alignment() &Qt::AlignBottom)
|
||||
e.appendChild(QETXML::createXmlProperty("Valignment", me.valueToKey(Qt::AlignBottom)));
|
||||
else if(this -> alignment() & Qt::AlignTop)
|
||||
e.appendChild(QETXML::createXmlProperty("Valignment", me.valueToKey(Qt::AlignTop)));
|
||||
else if(this -> alignment() &Qt::AlignVCenter)
|
||||
e.appendChild(QETXML::createXmlProperty("Valignment", me.valueToKey(Qt::AlignVCenter)));
|
||||
QDomElement dom_text = root_element.ownerDocument().createElement("text");
|
||||
dom_text.appendChild(root_element.ownerDocument().createTextNode(toPlainText()));
|
||||
root_element.appendChild(dom_text);
|
||||
|
||||
QDomDocument dom_doc;
|
||||
QDomElement dom_text = dom_doc.createElement("text");
|
||||
dom_text.appendChild(dom_doc.createTextNode(toPlainText()));
|
||||
e.appendChild(dom_text);
|
||||
//Info name
|
||||
if(!m_info_name.isEmpty()) {
|
||||
QDomElement dom_info_name = root_element.ownerDocument().createElement("info_name");
|
||||
dom_info_name.appendChild(root_element.ownerDocument().createTextNode(m_info_name));
|
||||
root_element.appendChild(dom_info_name);
|
||||
}
|
||||
|
||||
//Info name
|
||||
// TODO: move it into a property
|
||||
if(!m_info_name.isEmpty()) {
|
||||
QDomElement dom_info_name = dom_doc.createElement("info_name");
|
||||
dom_info_name.appendChild(dom_doc.createTextNode(m_info_name));
|
||||
e.appendChild(dom_info_name);
|
||||
}
|
||||
//Composite text
|
||||
if(!m_composite_text.isEmpty()) {
|
||||
QDomElement dom_comp_text = root_element.ownerDocument().createElement("composite_text");
|
||||
dom_comp_text.appendChild(root_element.ownerDocument().createTextNode(m_composite_text));
|
||||
root_element.appendChild(dom_comp_text);
|
||||
}
|
||||
|
||||
//Composite text
|
||||
// TODO: move it into a property
|
||||
if(!m_composite_text.isEmpty()) {
|
||||
QDomElement dom_comp_text = dom_doc.createElement("composite_text");
|
||||
dom_comp_text.appendChild(dom_doc.createTextNode(m_composite_text));
|
||||
e.appendChild(dom_comp_text);
|
||||
}
|
||||
|
||||
//Color
|
||||
// TODO: move it into a property
|
||||
if(color() != QColor(Qt::black)) {
|
||||
QDomElement dom_color = dom_doc.createElement("color");
|
||||
dom_color.appendChild(dom_doc.createTextNode(color().name()));
|
||||
e.appendChild(dom_color);
|
||||
}
|
||||
//Color
|
||||
if(color() != QColor(Qt::black)) {
|
||||
QDomElement dom_color = root_element.ownerDocument().createElement("color");
|
||||
dom_color.appendChild(root_element.ownerDocument().createTextNode(color().name()));
|
||||
root_element.appendChild(dom_color);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -75,7 +75,7 @@ class PartDynamicTextField : public QGraphicsTextItem, public CustomElementPart
|
||||
void startUserTransformation(const QRectF &initial_selection_rect) override;
|
||||
void handleUserTransformation(const QRectF &initial_selection_rect, const QRectF &new_selection_rect) override;
|
||||
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&root_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &dom_elmt) override;
|
||||
void fromTextFieldXml(const QDomElement &dom_element);
|
||||
static bool valideXml(QDomElement& dom_elmt);
|
||||
|
||||
@@ -85,25 +85,25 @@ void PartEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
|
||||
Export this ellipse in xml
|
||||
@return : an xml element that describe this ellipse
|
||||
*/
|
||||
void PartEllipse::toXmlPriv(QDomElement& e) const
|
||||
void PartEllipse::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
if (qFuzzyCompare(rect().width(), rect().height()))
|
||||
{
|
||||
e.setTagName("circle");
|
||||
e.appendChild(QETXML::createXmlProperty("diameter", rect().width()));
|
||||
}
|
||||
else
|
||||
{
|
||||
e.setTagName("ellipse");
|
||||
e.appendChild(QETXML::createXmlProperty("width", rect().width()));
|
||||
e.appendChild(QETXML::createXmlProperty("height", rect().height()));
|
||||
}
|
||||
if (qFuzzyCompare(rect().width(), rect().height()))
|
||||
{
|
||||
xml_element.setTagName("circle");
|
||||
xml_element.setAttribute("diameter", QString("%1").arg(rect().width()));
|
||||
}
|
||||
else
|
||||
{
|
||||
xml_element.setTagName("ellipse");
|
||||
xml_element.setAttribute("width", QString("%1").arg(rect().width()));
|
||||
xml_element.setAttribute("height", QString("%1").arg(rect().height()));
|
||||
}
|
||||
|
||||
QPointF top_left(sceneTopLeft());
|
||||
e.appendChild(QETXML::createXmlProperty("x", top_left.x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", top_left.y()));
|
||||
QPointF top_left(sceneTopLeft());
|
||||
xml_element.setAttribute("x", QString("%1").arg(top_left.x()));
|
||||
xml_element.setAttribute("y", QString("%1").arg(top_left.y()));
|
||||
|
||||
stylesToXml(e);
|
||||
stylesToXml(xml_element);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -52,7 +52,7 @@ class PartEllipse : public AbstractPartEllipse
|
||||
//Name and XML
|
||||
QString name() const override { return(QObject::tr("ellipse", "element part name")); }
|
||||
QString xmlName() const override { return(QString("ellipse")); }
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &) override;
|
||||
static bool valideXml(QDomElement& element);
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
|
||||
@@ -109,22 +109,21 @@ void PartLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *options,
|
||||
@param xml_document : Xml document to use for create the xml element.
|
||||
@return an xml element that describe this line
|
||||
*/
|
||||
void PartLine::toXmlPriv(QDomElement& e) const
|
||||
void PartLine::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
QPointF p1(sceneP1());
|
||||
QPointF p2(sceneP2());
|
||||
QPointF p1(sceneP1());
|
||||
QPointF p2(sceneP2());
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("x1", p1.x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y1", p1.y()));
|
||||
e.appendChild(QETXML::createXmlProperty("x2", p2.x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y2", p2.y()));
|
||||
xml_element.setAttribute("x1", QString("%1").arg(p1.x()));
|
||||
xml_element.setAttribute("y1", QString("%1").arg(p1.y()));
|
||||
xml_element.setAttribute("x2", QString("%1").arg(p2.x()));
|
||||
xml_element.setAttribute("y2", QString("%1").arg(p2.y()));
|
||||
xml_element.setAttribute("end1", Qet::endTypeToString(first_end));
|
||||
xml_element.setAttribute("length1", QString("%1").arg(first_length));
|
||||
xml_element.setAttribute("end2", Qet::endTypeToString(second_end));
|
||||
xml_element.setAttribute("length2", QString("%1").arg(second_length));
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("end1", Qet::endTypeToString(first_end)));
|
||||
e.appendChild(QETXML::createXmlProperty("length1", first_length));
|
||||
e.appendChild(QETXML::createXmlProperty("end2", Qet::endTypeToString(second_end)));
|
||||
e.appendChild(QETXML::createXmlProperty("length2", second_length));
|
||||
|
||||
stylesToXml(e);
|
||||
stylesToXml(xml_element);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -70,7 +70,7 @@ class PartLine : public CustomElementGraphicPart
|
||||
void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = nullptr) override;
|
||||
QString name() const override { return(QObject::tr("ligne", "element part name")); }
|
||||
QString xmlName() const override { return(QString("line")); }
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &) override;
|
||||
bool valideXml(QDomElement& element) const;
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
|
||||
@@ -130,19 +130,17 @@ bool PartPolygon::fromXmlPriv(const QDomElement &qde)
|
||||
Export this polygin in xml
|
||||
@param e: properties get part of this DomElement
|
||||
*/
|
||||
void PartPolygon::toXmlPriv(QDomElement& e) const
|
||||
void PartPolygon::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
int i = 1;
|
||||
foreach(QPointF point, m_polygon) {
|
||||
point = mapToScene(point);
|
||||
e.appendChild(QETXML::createXmlProperty(QString("x%1").arg(i), point.x()));
|
||||
e.appendChild(QETXML::createXmlProperty(QString("y%1").arg(i), point.y()));
|
||||
++ i;
|
||||
}
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("closed", m_closed));
|
||||
|
||||
stylesToXml(e);
|
||||
int i = 1;
|
||||
foreach(QPointF point, m_polygon) {
|
||||
point = mapToScene(point);
|
||||
xml_element.setAttribute(QString("x%1").arg(i), QString("%1").arg(point.x()));
|
||||
xml_element.setAttribute(QString("y%1").arg(i), QString("%1").arg(point.y()));
|
||||
++ i;
|
||||
}
|
||||
if (!m_closed) xml_element.setAttribute("closed", "false");
|
||||
stylesToXml(xml_element);
|
||||
}
|
||||
|
||||
bool PartPolygon::valideXml(QDomElement& element) {
|
||||
|
||||
@@ -62,7 +62,7 @@ class PartPolygon : public CustomElementGraphicPart
|
||||
QString name() const override { return(QObject::tr("polygone", "element part name")); }
|
||||
QString xmlName() const override { return(QString("polygon")); }
|
||||
bool fromXmlPriv(const QDomElement &) override;
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
static bool valideXml(QDomElement& element);
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
void fromSettings(QSettings &,const QString & = QString()) override{/*TODO: implement*/}
|
||||
|
||||
@@ -89,32 +89,28 @@ void PartRectangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt
|
||||
@param xml_document : Xml document to use for create the xml element.
|
||||
@return an xml element that describe this ellipse
|
||||
*/
|
||||
void PartRectangle::toXmlPriv(QDomElement& e) const
|
||||
void PartRectangle::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
QPointF top_left(sceneTopLeft());
|
||||
QPointF top_left(sceneTopLeft());
|
||||
xml_element.setAttribute("x", QString("%1").arg(top_left.x()));
|
||||
xml_element.setAttribute("y", QString("%1").arg(top_left.y()));
|
||||
xml_element.setAttribute("width", QString("%1").arg(m_rect.width()));
|
||||
xml_element.setAttribute("height", QString("%1").arg(m_rect.height()));
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("x", top_left.x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", top_left.y()));
|
||||
e.appendChild(QETXML::createXmlProperty("width", m_rect.width()));
|
||||
e.appendChild(QETXML::createXmlProperty("height", m_rect.height()));
|
||||
QRectF rect = m_rect.normalized();
|
||||
qreal x = m_xRadius;
|
||||
if (x > rect.width()/2) {
|
||||
x = rect.width()/2;
|
||||
}
|
||||
qreal y = m_yRadius;
|
||||
if (y > rect.height()/2) {
|
||||
y = rect.height()/2;
|
||||
}
|
||||
|
||||
QRectF rect = m_rect.normalized();
|
||||
qreal x = m_xRadius;
|
||||
if (x > rect.width()/2) {
|
||||
x = rect.width()/2;
|
||||
}
|
||||
qreal y = m_yRadius;
|
||||
if (y > rect.height()/2) {
|
||||
y = rect.height()/2;
|
||||
}
|
||||
xml_element.setAttribute("rx", QString::number(m_xRadius));
|
||||
xml_element.setAttribute("ry", QString::number(m_yRadius));
|
||||
|
||||
e.setAttribute("rx", QString::number(m_xRadius));
|
||||
e.setAttribute("ry", QString::number(m_yRadius));
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("rx", m_xRadius));
|
||||
e.appendChild(QETXML::createXmlProperty("ry", m_yRadius));
|
||||
|
||||
stylesToXml(e);
|
||||
stylesToXml(xml_element);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -60,7 +60,7 @@ class PartRectangle : public CustomElementGraphicPart
|
||||
QString name () const override { return(QObject::tr("rectangle", "element part name")); }
|
||||
|
||||
QString xmlName () const override { return(QString("rect")); }
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
bool fromXmlPriv (const QDomElement &) override;
|
||||
static bool valideXml(QDomElement& element);
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
|
||||
@@ -72,13 +72,12 @@ bool PartTerminal::fromXmlPriv(const QDomElement &xml_elmt) {
|
||||
*/
|
||||
void PartTerminal::toXmlPriv(QDomElement& e) const {
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("uuid", d->m_uuid));
|
||||
e.setAttribute("uuid", d->m_uuid.toString());
|
||||
|
||||
d->m_pos = pos();
|
||||
d->m_pos = pos();
|
||||
|
||||
// Do not store terminal data in its own child
|
||||
QDomDocument doc = e.ownerDocument();
|
||||
e.appendChild(d->toXml(doc));
|
||||
e.appendChild(d -> toXml(doc));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ class PartTerminal : public CustomElementGraphicPart
|
||||
int type() const override { return Type; }
|
||||
QString xmlName() const override { return(QString("terminal")); }
|
||||
bool fromXmlPriv(const QDomElement &) override;
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
static bool valideXml(QDomElement& element);
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
void fromSettings(QSettings &,const QString & = QString()) override{/*TODO: implement*/}
|
||||
|
||||
@@ -119,16 +119,14 @@ bool PartText::fromXmlPriv(const QDomElement &xml_element)
|
||||
@param xml_document Document XML a utiliser pour creer l'element XML
|
||||
@return un element XML decrivant le texte statique
|
||||
*/
|
||||
void PartText::toXmlPriv(QDomElement& e) const
|
||||
void PartText::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
//QDomElement xml_element = xml_document.createElement(xmlName());
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("x", pos().x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", pos().y()));
|
||||
e.appendChild(QETXML::createXmlProperty("text", toPlainText()));
|
||||
e.appendChild(QETXML::createXmlProperty("font", font().toString()));
|
||||
e.appendChild(QETXML::createXmlProperty("rotation", rotation()));
|
||||
e.appendChild(QETXML::createXmlProperty("color", defaultTextColor().name()));
|
||||
xml_element.setAttribute("x", QString::number(pos().x()));
|
||||
xml_element.setAttribute("y", QString::number(pos().y()));
|
||||
xml_element.setAttribute("text", toPlainText());
|
||||
xml_element.setAttribute("font", font().toString());
|
||||
xml_element.setAttribute("rotation", QString::number(rotation()));
|
||||
xml_element.setAttribute("color", defaultTextColor().name());
|
||||
}
|
||||
|
||||
bool PartText::valideXml(QDomElement& element) {
|
||||
|
||||
@@ -63,7 +63,7 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
|
||||
static bool valideXml(QDomElement& element);
|
||||
void toSettings(QSettings &,const QString & = QString()) const override {/*TODO: implement*/}
|
||||
void fromSettings(QSettings &,const QString & = QString()) override{/*TODO: implement*/}
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
void setRotation(qreal angle) {(QGraphicsObject::setRotation(QET::correctAngle(angle)));}
|
||||
bool isUseless() const override;
|
||||
QRectF sceneGeometricRect() const override;
|
||||
|
||||
@@ -93,19 +93,18 @@ void TerminalData::fromSettings(QSettings &settings, const QString& prefix)
|
||||
@param e: element to store the properties
|
||||
the name, number, position and orientation of the terminal
|
||||
*/
|
||||
void TerminalData::toXmlPriv(QDomElement& e) const
|
||||
void TerminalData::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
// TODO:
|
||||
//QDomElement xml_element = xml_document.createElement("terminaldata");
|
||||
xml_element.setAttribute("x", QString("%1").arg(q->scenePos().x()));
|
||||
xml_element.setAttribute("y", QString("%1").arg(q->scenePos().y()));
|
||||
|
||||
// m_pos cannot be stored, because in the partterminal it will not be updated.
|
||||
// In PartTerminal m_pos is the position of the dock, in Terminal m_pos is the second side of the terminal
|
||||
// This is hold for legacy compability reason
|
||||
e.appendChild(QETXML::createXmlProperty("x", m_pos.x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", m_pos.y()));
|
||||
e.appendChild(QETXML::createXmlProperty("name", m_name));
|
||||
e.appendChild(QETXML::createXmlProperty("orientation", orientationToString(m_orientation)));
|
||||
e.appendChild(QETXML::createXmlProperty("type", typeToString(m_type)));
|
||||
xml_element.setAttribute("uuid", m_uuid.toString());
|
||||
xml_element.setAttribute("name", m_name);
|
||||
|
||||
xml_element.setAttribute("orientation",
|
||||
orientationToString(m_orientation));
|
||||
|
||||
xml_element.setAttribute("type", typeToString(m_type));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -56,7 +56,7 @@ class TerminalData : public PropertiesInterface
|
||||
const QString& prefix = QString()) const override;
|
||||
void fromSettings(QSettings &settings,
|
||||
const QString& = QString()) override;
|
||||
void toXmlPriv(QDomElement &) const override;
|
||||
void toXmlPriv(QDomElement &xml_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &xml_element) override;
|
||||
|
||||
static bool valideXml(const QDomElement &xml_element);
|
||||
|
||||
@@ -95,24 +95,30 @@ void XRefProperties::fromSettings(QSettings &settings,
|
||||
@param xml_document : QDomElement to use for saving
|
||||
@return QDomElement
|
||||
*/
|
||||
void XRefProperties::toXmlPriv(QDomElement& e) const
|
||||
void XRefProperties::toXmlPriv(QDomElement& xml_element) const
|
||||
{
|
||||
xml_element.setAttribute("type", m_key);
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("type", m_key));
|
||||
e.appendChild(QETXML::createXmlProperty("showpowerctc", m_show_power_ctc));
|
||||
e.appendChild(QETXML::createXmlProperty("displayhas", m_display == Cross? "cross" : "contacts"));
|
||||
e.appendChild(QETXML::createXmlProperty("snapto", m_snap_to == Bottom? "bottom" : "label"));
|
||||
xml_element.setAttribute("showpowerctc", m_show_power_ctc? "true" : "false");
|
||||
QString display = m_display == Cross? "cross" : "contacts";
|
||||
xml_element.setAttribute("displayhas", display);
|
||||
QString snap = m_snap_to == Bottom? "bottom" : "label";
|
||||
xml_element.setAttribute("snapto", snap);
|
||||
|
||||
QString xrefpos;
|
||||
|
||||
QMetaEnum var = QMetaEnum::fromType<Qt::Alignment>();
|
||||
e.appendChild(QETXML::createXmlProperty("xrefpos", var.valueToKey(m_xref_pos)));
|
||||
e.appendChild(QETXML::createXmlProperty("offset", m_offset));
|
||||
e.appendChild(QETXML::createXmlProperty("master_label", m_master_label));
|
||||
e.appendChild(QETXML::createXmlProperty("slave_label", m_slave_label));
|
||||
QMetaEnum var = QMetaEnum::fromType<Qt::Alignment>();
|
||||
xml_element.setAttribute("xrefpos", var.valueToKey(m_xref_pos));
|
||||
|
||||
foreach (QString key, m_prefix.keys()) {
|
||||
e.appendChild(QETXML::createXmlProperty(key + "prefix", m_prefix.value(key)));
|
||||
}
|
||||
int offset = m_offset;
|
||||
xml_element.setAttribute("offset", QString::number(offset));
|
||||
QString master_label = m_master_label;
|
||||
xml_element.setAttribute("master_label", master_label);
|
||||
QString slave_label = m_slave_label;
|
||||
xml_element.setAttribute("slave_label", slave_label);
|
||||
foreach (QString key, m_prefix.keys()) {
|
||||
xml_element.setAttribute(key + "prefix", m_prefix.value(key));
|
||||
}
|
||||
}
|
||||
|
||||
/** RETURNS True
|
||||
|
||||
@@ -45,7 +45,7 @@ class XRefProperties : public PropertiesInterface
|
||||
void toSettings (QSettings &settings, const QString& = QString()) const override;
|
||||
void fromSettings (QSettings &settings,
|
||||
const QString& = QString()) override;
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&xml_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &xml_element) override;
|
||||
|
||||
static QHash<QString, XRefProperties> defaultProperties();
|
||||
|
||||
@@ -1002,66 +1002,56 @@ bool Conductor::fromXmlPriv(const QDomElement &dom_element)
|
||||
bornes dans le document XML et leur adresse en memoire
|
||||
@return Un element XML representant le conducteur
|
||||
*/
|
||||
void Conductor::toXmlPriv(QDomElement& e) const {
|
||||
void Conductor::toXmlPriv(QDomElement& dom_element) const {
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("x", pos().x()));
|
||||
e.appendChild(QETXML::createXmlProperty("y", pos().y()));
|
||||
dom_element.setAttribute("x", QString::number(pos().x()));
|
||||
dom_element.setAttribute("y", QString::number(pos().y()));
|
||||
|
||||
// Terminal is uniquely identified by the uuid of the terminal and the element
|
||||
QUuid terminal = terminal1->uuid();
|
||||
QUuid terminalParent = terminal1->parentElement()->uuid();
|
||||
if (terminalParent.isNull() || terminal.isNull()) {
|
||||
// legacy when the terminal does not have a valid uuid
|
||||
// do not store element1 information, because this is used to determine in the fromXml
|
||||
// process that legacy file format
|
||||
e.appendChild(QETXML::createXmlProperty("terminal1", terminal1->ID()));
|
||||
} else {
|
||||
e.appendChild(QETXML::createXmlProperty("element1", terminalParent));
|
||||
e.appendChild(QETXML::createXmlProperty("terminal1", terminal));
|
||||
}
|
||||
// Terminal is uniquely identified by the uuid of the terminal and the element
|
||||
if (terminal1->uuid().isNull()) {
|
||||
// legacy method to identify the terminal
|
||||
dom_element.setAttribute("terminal1", terminal1->ID()); // for backward compability
|
||||
} else {
|
||||
dom_element.setAttribute("element1", terminal1->parentElement()->uuid().toString());
|
||||
dom_element.setAttribute("terminal1", terminal1->uuid().toString());
|
||||
}
|
||||
|
||||
terminal = terminal2->uuid();
|
||||
terminalParent = terminal2->parentElement()->uuid();
|
||||
if (terminalParent.isNull() || terminal.isNull()) {
|
||||
// legacy when the terminal does not have a valid uuid
|
||||
// do not store element1 information, because this is used to determine in the fromXml
|
||||
// process that legacy file format
|
||||
e.appendChild(QETXML::createXmlProperty("terminal2", terminal2->ID()));
|
||||
} else {
|
||||
e.appendChild(QETXML::createXmlProperty("element2", terminal2->parentElement()->uuid()));
|
||||
e.appendChild(QETXML::createXmlProperty("terminal2", terminal2->uuid()));
|
||||
}
|
||||
if (terminal2->uuid().isNull()) {
|
||||
// legacy method to identify the terminal
|
||||
dom_element.setAttribute("terminal2", terminal2->ID()); // for backward compability
|
||||
} else {
|
||||
dom_element.setAttribute("element2", terminal2->parentElement()->uuid().toString());
|
||||
dom_element.setAttribute("terminal2", terminal2->uuid().toString());
|
||||
}
|
||||
dom_element.setAttribute("freezeLabel", m_freeze_label? "true" : "false");
|
||||
|
||||
e.appendChild(QETXML::createXmlProperty("freezeLabel", m_freeze_label));
|
||||
// on n'exporte les segments du conducteur que si ceux-ci ont
|
||||
// ete modifies par l'utilisateur
|
||||
if (modified_path)
|
||||
{
|
||||
// parcours et export des segments
|
||||
QDomElement current_segment;
|
||||
foreach(ConductorSegment *segment, segmentsList())
|
||||
{
|
||||
current_segment = dom_element.ownerDocument().createElement("segment");
|
||||
current_segment.setAttribute("orientation", segment -> isHorizontal() ? "horizontal" : "vertical");
|
||||
current_segment.setAttribute("length", QString("%1").arg(segment -> length()));
|
||||
dom_element.appendChild(current_segment);
|
||||
}
|
||||
}
|
||||
QDomDocument doc = dom_element.ownerDocument();
|
||||
QDomElement dom_seq = m_autoNum_seq.toXml(doc);
|
||||
dom_element.appendChild(dom_seq);
|
||||
|
||||
QDomDocument doc;
|
||||
|
||||
// on n'exporte les segments du conducteur que si ceux-ci ont
|
||||
// ete modifies par l'utilisateur
|
||||
if (modified_path)
|
||||
{
|
||||
// parcours et export des segments
|
||||
QDomElement current_segment;
|
||||
foreach(ConductorSegment *segment, segmentsList())
|
||||
{
|
||||
current_segment = doc.createElement("segment");
|
||||
current_segment.appendChild(QETXML::createXmlProperty("orientation", segment->isHorizontal() ? "horizontal": "vertical"));
|
||||
current_segment.appendChild(QETXML::createXmlProperty("length", segment -> length()));
|
||||
e.appendChild(current_segment);
|
||||
}
|
||||
}
|
||||
|
||||
QDomElement dom_seq = m_autoNum_seq.toXml(doc); // swquentialNumbers tag
|
||||
e.appendChild(dom_seq);
|
||||
|
||||
// Export the properties and text
|
||||
QDomElement conductorProperties = m_properties.toXml(doc);
|
||||
for (int i=0; i < conductorProperties.childNodes().count(); i++) {
|
||||
QDomNode node = conductorProperties.childNodes().at(i).cloneNode(); // cloneNode() is important!
|
||||
e.appendChild(node);
|
||||
}
|
||||
|
||||
m_text_item->toXml(e);
|
||||
// Export the properties and text
|
||||
m_properties. toXml(doc);
|
||||
if(m_text_item->wasMovedByUser())
|
||||
{
|
||||
dom_element.setAttribute("userx", QString::number(m_text_item->pos().x()));
|
||||
dom_element.setAttribute("usery", QString::number(m_text_item->pos().y()));
|
||||
}
|
||||
if(m_text_item->wasRotateByUser())
|
||||
dom_element.setAttribute("rotation", QString::number(m_text_item->rotation()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -103,7 +103,7 @@ class Conductor : public QGraphicsObject, public PropertiesInterface
|
||||
public:
|
||||
static bool valideXml (QDomElement &);
|
||||
bool fromXmlPriv(const QDomElement &) override;
|
||||
void toXmlPriv(QDomElement&) const override;
|
||||
void toXmlPriv(QDomElement&dom_element) const override;
|
||||
void toSettings(QSettings &, const QString & = QString()) const override {}
|
||||
void fromSettings(QSettings &, const QString & = QString()) override {}
|
||||
private:
|
||||
|
||||
@@ -760,15 +760,12 @@ QList<Conductor *> Terminal::conductors() const
|
||||
*/
|
||||
void Terminal::toXmlPriv(QDomElement &qdo) const
|
||||
{
|
||||
qdo.appendChild(QETXML::createXmlProperty("number", number_terminal_));
|
||||
qdo.appendChild(QETXML::createXmlProperty("nameHidden", name_terminal_hidden));
|
||||
// for backward compatibility
|
||||
qdo.setAttribute("x", QString("%1").arg(dock_elmt_.x()));
|
||||
qdo.setAttribute("y", QString("%1").arg(dock_elmt_.y()));
|
||||
// end for backward compatibility
|
||||
|
||||
// Do not store terminal data in its own child
|
||||
// Bad hack. The problem is that in the diagrams the terminal is described by the position and in the Collection by the dock.
|
||||
QPointF tempPos = d->m_pos;
|
||||
d->m_pos = dock_elmt_;
|
||||
d->toXmlPriv(qdo); // TerminalData
|
||||
d->m_pos = tempPos;
|
||||
qdo.setAttribute("orientation", d->m_orientation);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,20 +73,21 @@ bool TitleBlockProperties::operator!=(const TitleBlockProperties &ip) {
|
||||
@param e Element XML auquel seront ajoutes des attributs
|
||||
*/
|
||||
void TitleBlockProperties::toXmlPriv(QDomElement& e) const {
|
||||
e.appendChild(QETXML::createXmlProperty("author", author));
|
||||
e.appendChild(QETXML::createXmlProperty("title", title));
|
||||
e.appendChild(QETXML::createXmlProperty("filename", filename));
|
||||
e.appendChild(QETXML::createXmlProperty("plant", plant));
|
||||
e.appendChild(QETXML::createXmlProperty("locmach", locmach));
|
||||
e.appendChild(QETXML::createXmlProperty("indexrev", indexrev));
|
||||
e.appendChild(QETXML::createXmlProperty("version", version));
|
||||
e.appendChild(QETXML::createXmlProperty("folio", folio));
|
||||
e.appendChild(QETXML::createXmlProperty("date", exportDate()));
|
||||
e.appendChild(QETXML::createXmlProperty("display_at", display_at == Qt::BottomEdge? "bottom" : "right"));
|
||||
e.setAttribute("author", author);
|
||||
e.setAttribute("title", title);
|
||||
e.setAttribute("filename", filename);
|
||||
e.setAttribute("plant", plant);
|
||||
e.setAttribute("locmach", locmach);
|
||||
e.setAttribute("indexrev",indexrev);
|
||||
e.setAttribute("version", version);
|
||||
e.setAttribute("folio", folio);
|
||||
e.setAttribute("auto_page_num", auto_page_num);
|
||||
e.setAttribute("date", exportDate());
|
||||
e.setAttribute("displayAt", (display_at == Qt::BottomEdge? "bottom" : "right"));
|
||||
if (!template_name.isEmpty())
|
||||
{
|
||||
e.appendChild(QETXML::createXmlProperty("titleblocktemplate", template_name));
|
||||
e.appendChild(QETXML::createXmlProperty("titleblocktemplateCollection", QET::qetCollectionToString(collection)));
|
||||
e.setAttribute("titleblocktemplate", template_name);
|
||||
e.setAttribute("titleblocktemplateCollection", QET::qetCollectionToString(collection));
|
||||
}
|
||||
|
||||
if (context.keys().count()) {
|
||||
@@ -94,7 +95,6 @@ void TitleBlockProperties::toXmlPriv(QDomElement& e) const {
|
||||
context.toXml(properties);
|
||||
e.appendChild(properties);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** RETURNS True
|
||||
|
||||
Reference in New Issue
Block a user