diff --git a/customelement.cpp b/customelement.cpp index a261f6d72..ca76c3bd9 100644 --- a/customelement.cpp +++ b/customelement.cpp @@ -420,6 +420,7 @@ bool CustomElement::parseInput(QDomElement &e) { ElementTextItem *eti = new ElementTextItem(e.attribute("text"), this); eti -> setFont(QFont(QETApp::diagramTextsFont(), size)); eti -> setPos(pos_x, pos_y); + eti -> setOriginalPos(QPointF(pos_x, pos_y)); if (e.attribute("rotate") == "true") eti -> setFollowParentRotations(true); return(true); } diff --git a/elementtextitem.cpp b/elementtextitem.cpp index b268318dc..df0bfb099 100644 --- a/elementtextitem.cpp +++ b/elementtextitem.cpp @@ -98,8 +98,23 @@ void ElementTextItem::fromXml(const QDomElement &e) { */ QDomElement ElementTextItem::toXml(QDomDocument &document) const { QDomElement result = document.createElement("input"); - result.setAttribute("x", pos().x()); - result.setAttribute("y", pos().y()); + result.setAttribute("x", originalPos().x()); + result.setAttribute("y", originalPos().y()); result.setAttribute("text", toPlainText()); return(result); } + +/** + @param p Position originale / de reference pour ce champ + Cette position est utilisee lors de l'export en XML +*/ +void ElementTextItem::setOriginalPos(const QPointF &p) { + original_position = p; +} + +/** + @return la position originale / de reference pour ce champ +*/ +QPointF ElementTextItem::originalPos() const { + return(original_position); +} diff --git a/elementtextitem.h b/elementtextitem.h index 9970d8067..e8009b7f5 100644 --- a/elementtextitem.h +++ b/elementtextitem.h @@ -38,6 +38,7 @@ class ElementTextItem : public DiagramTextItem { private: bool follow_parent_rotations; + QPointF original_position; // methodes public: @@ -51,6 +52,8 @@ class ElementTextItem : public DiagramTextItem { void setPos(const QPointF &); void setPos(qreal, qreal); QPointF pos() const; + void setOriginalPos(const QPointF &); + QPointF originalPos() const; }; /**