diff --git a/sources/editor/elementscene.cpp b/sources/editor/elementscene.cpp index b1100d5df..2110c153e 100644 --- a/sources/editor/elementscene.cpp +++ b/sources/editor/elementscene.cpp @@ -596,7 +596,8 @@ QRectF ElementScene::borderRect() const { "bounding rect" de l'element */ QRectF ElementScene::sceneContent() const { - return(itemsBoundingRect().unite(borderRect())); + qreal adjustment = 5.0; + return(itemsBoundingRect().unite(borderRect()).adjusted(-adjustment, -adjustment, adjustment, adjustment)); } /** @@ -684,7 +685,10 @@ void ElementScene::paste() { Selectionne tout */ void ElementScene::slot_selectAll() { + blockSignals(true); foreach(QGraphicsItem *qgi, items()) qgi -> setSelected(true); + blockSignals(false); + emit(selectionChanged()); } /** @@ -698,7 +702,10 @@ void ElementScene::slot_deselectAll() { Inverse la selection */ void ElementScene::slot_invertSelection() { + blockSignals(true); foreach(QGraphicsItem *qgi, items()) qgi -> setSelected(!qgi -> isSelected()); + blockSignals(false); + emit(selectionChanged()); } /** diff --git a/sources/editor/elementview.cpp b/sources/editor/elementview.cpp index be726e602..9750d16d4 100644 --- a/sources/editor/elementview.cpp +++ b/sources/editor/elementview.cpp @@ -33,6 +33,7 @@ ElementView::ElementView(ElementScene *scene, QWidget *parent) : setResizeAnchor(QGraphicsView::AnchorUnderMouse); zoomReset(); connect(scene_, SIGNAL(pasteAreaDefined(const QRectF &)), this, SLOT(pasteAreaDefined(const QRectF &))); + connect(scene_, SIGNAL(partsAdded()), this, SLOT(adjustSceneRect())); } /// Destructeur @@ -90,6 +91,7 @@ bool ElementView::event(QEvent *e) { Agrandit le schema (+33% = inverse des -25 % de zoomMoins()) */ void ElementView::zoomIn() { + adjustSceneRect(); scale(4.0/3.0, 4.0/3.0); } @@ -97,6 +99,7 @@ void ElementView::zoomIn() { Retrecit le schema (-25% = inverse des +33 % de zoomPlus()) */ void ElementView::zoomOut() { + adjustSceneRect(); scale(0.75, 0.75); } @@ -114,6 +117,7 @@ void ElementView::zoomFit() { Reinitialise le zoom */ void ElementView::zoomReset() { + adjustSceneRect(); resetMatrix(); scale(4.0, 4.0); }