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:
Martin Marmsoler
2021-03-07 10:09:45 +01:00
parent 058824f29a
commit 5d3710c4b2
26 changed files with 267 additions and 294 deletions

View File

@@ -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);
}
/**

View File

@@ -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*/}

View File

@@ -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);
}
}
/**

View File

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

View File

@@ -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);
}
/**

View File

@@ -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*/}

View File

@@ -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);
}
/**

View File

@@ -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*/}

View File

@@ -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) {

View File

@@ -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*/}

View File

@@ -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);
}
/**

View File

@@ -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*/}

View File

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

View File

@@ -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*/}

View File

@@ -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) {

View File

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