diff --git a/conducer.cpp b/conducer.cpp index 1c206345b..d3b8f3480 100644 --- a/conducer.cpp +++ b/conducer.cpp @@ -154,12 +154,8 @@ void Conducer::segmentsToPath() { @param o2 Orientation de la borne 2 */ void Conducer::priv_modifieConducer(const QPointF &p1, QET::Orientation, const QPointF &p2, QET::Orientation) { - // determine le nombre de segments horizontaux et verticaux - uint nb_horiz_segments = conducer_profile.nbSegments(QET::Horizontal); - uint nb_verti_segments = conducer_profile.nbSegments(QET::Vertical); - - Q_ASSERT_X(nb_horiz_segments + nb_verti_segments > 1, "Conducer::priv_modifieConducer", "pas de points a modifier"); - Q_ASSERT_X(!conducer_profile.isNull(), "Conducer::priv_modifieConducer", "pas de profil utilisable"); + Q_ASSERT_X(conducer_profile.nbSegments(QET::Both) > 1, "Conducer::priv_modifieConducer", "pas de points a modifier"); + Q_ASSERT_X(!conducer_profile.isNull(), "Conducer::priv_modifieConducer", "pas de profil utilisable"); // recupere les coordonnees fournies des bornes QPointF new_p1 = mapFromScene(p1); diff --git a/diagram.cpp b/diagram.cpp index a1b55384d..437ca821b 100644 --- a/diagram.cpp +++ b/diagram.cpp @@ -22,6 +22,7 @@ Diagram::Diagram(QObject *parent) : QGraphicsScene(parent), qgi_manager(this) { conducer_setter -> setLine(QLineF(QPointF(0.0, 0.0), QPointF(0.0, 0.0))); draw_grid = true; use_border = true; + moved_elements_fetched = false; connect(this, SIGNAL(selectionChanged()), this, SLOT(slot_checkSelectionEmptinessChange())); } diff --git a/element.cpp b/element.cpp index d6692785b..dd4a0f6d8 100644 --- a/element.cpp +++ b/element.cpp @@ -264,18 +264,20 @@ void Element::moveOtherElements(const QPointF &diff) { void Element::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) { Diagram *diagram_ptr = diagram(); - if (diagram_ptr && !diagram_ptr -> current_movement.isNull()) { - diagram_ptr -> undoStack().push( - new MoveElementsCommand( - diagram_ptr, - diagram_ptr -> elementsToMove(), - diagram_ptr -> conducersToMove(), - diagram_ptr -> conducersToUpdate(), - diagram_ptr -> current_movement - ) - ); + if (diagram_ptr) { + if (!diagram_ptr -> current_movement.isNull()) { + diagram_ptr -> undoStack().push( + new MoveElementsCommand( + diagram_ptr, + diagram_ptr -> elementsToMove(), + diagram_ptr -> conducersToMove(), + diagram_ptr -> conducersToUpdate(), + diagram_ptr -> current_movement + ) + ); + diagram_ptr -> current_movement = QPointF(); + } diagram_ptr -> invalidateMovedElements(); - diagram_ptr -> current_movement = QPointF(); } QGraphicsItem::mouseReleaseEvent(e); } diff --git a/elements/entree.elmt b/elements/entree.elmt index 94594cfdd..8c0ae698d 100644 --- a/elements/entree.elmt +++ b/elements/entree.elmt @@ -6,7 +6,7 @@ - +