diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index cc106bb5b..54f0a2208 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -410,12 +410,10 @@ void DiagramView::pasteHere() { } /** - Manage the press events click mouse : + Manage the events click mouse : * click to add an independent text field */ void DiagramView::mousePressEvent(QMouseEvent *e) { - // Save the button in flag - FlagMouseButtons_ = e->buttons(); if (fresh_focus_in_) { switchToVisualisationModeIfNeeded(e); fresh_focus_in_ = false; @@ -426,47 +424,34 @@ void DiagramView::mousePressEvent(QMouseEvent *e) { is_adding_text = false; } } - // Select visualisation - if (e->buttons() == Qt::MidButton){ - if (!is_moving_view_) { - setVisualisationMode(); - is_moving_view_ = true; - // And Simulate the left click - QGraphicsView::mousePressEvent( new QMouseEvent(QEvent::MouseButtonPress, e->pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier) ); - } - } QGraphicsView::mousePressEvent(e); } /** - Manage the release events click mouse : -*/ -void DiagramView::mouseReleaseEvent(QMouseEvent *e) { - // Selection mode - if (FlagMouseButtons_ == Qt::MidButton){ - if (is_moving_view_) { - setSelectionMode(); - is_moving_view_ = false; - } - } - QGraphicsView::mousePressEvent(e); -} - -/** - Manage wheel event of mouse for Zoom and scrolling + Manage wheel event of mouse @param e QWheelEvent */ void DiagramView::wheelEvent(QWheelEvent *e) { - if (!(e -> modifiers() & Qt::ControlModifier)) { - if (e -> delta() > 0) { - zoomIn(); + //Zoom and scrolling + if (e->buttons() != Qt::MidButton) { + if (!(e -> modifiers() & Qt::ControlModifier)) { + if (e -> delta() > 0) zoomIn(); + else zoomOut(); } else { - zoomOut(); + QAbstractScrollArea::wheelEvent(e); } } - else { - QAbstractScrollArea::wheelEvent(e); + // Or select visualisation or selection mode + else{ + if (!is_moving_view_) { + setVisualisationMode(); + is_moving_view_ = true; + } + else{ + setSelectionMode(); + is_moving_view_ = false; + } } } diff --git a/sources/diagramview.h b/sources/diagramview.h index 148be9a19..da18124c4 100644 --- a/sources/diagramview.h +++ b/sources/diagramview.h @@ -52,7 +52,6 @@ class DiagramView : public QGraphicsView { bool fresh_focus_in_; ///< Indicate the focus was freshly gained ElementsLocation next_location_; QPoint next_position_; - int FlagMouseButtons_; ///< save the buttons of mouse // methods public: @@ -87,7 +86,6 @@ class DiagramView : public QGraphicsView { private: void mousePressEvent(QMouseEvent *); - void mouseReleaseEvent(QMouseEvent *); void dragEnterEvent(QDragEnterEvent *); void dragLeaveEvent(QDragLeaveEvent *); void dragMoveEvent(QDragMoveEvent *);