diff --git a/sources/diagram.cpp b/sources/diagram.cpp index f0d51b097..ba9f5d6f1 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -624,8 +624,8 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf } if (can_add_conductor) { Conductor *c = new Conductor(table_adr_id.value(id_p1), table_adr_id.value(id_p2)); - c -> fromXml(f); addItem(c); + c -> fromXml(f); added_conductors << c; } } @@ -747,6 +747,7 @@ void Diagram::addItem(Conductor *conductor) { QGraphicsScene::addItem(conductor); conductor -> terminal1 -> addConductor(conductor); conductor -> terminal2 -> addConductor(conductor); + conductor -> calculateTextItemPosition(); } } diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp index f232bb825..cf17d57c5 100644 --- a/sources/qetgraphicsitem/conductor.cpp +++ b/sources/qetgraphicsitem/conductor.cpp @@ -92,7 +92,6 @@ Conductor::Conductor(Terminal *p1, Terminal* p2) : // ajout du champ de texte editable text_item = new ConductorTextItem(properties_.text, this); text_item -> setFlag(QGraphicsItem::ItemStacksBehindParent); - calculateTextItemPosition(); connect( text_item, SIGNAL(diagramTextChanged(DiagramTextItem *, const QString &, const QString &)), @@ -1337,8 +1336,11 @@ void Conductor::setText(const QString &t) { * @param p : properties */ void Conductor::setProperties(const ConductorProperties &p) { - properties_ = p; - readProperties(); + if (properties_ != p) + { + properties_ = p; + readProperties(); + } } /**