From 99a288013604e5304320bc04a660b5a3e48cdb7f Mon Sep 17 00:00:00 2001 From: cfdev Date: Mon, 8 Apr 2013 14:39:50 +0000 Subject: [PATCH] Update wheel mouse event and add the possibility to change mode (selection, visu) with the wheel click. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2091 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/diagramview.cpp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index d94138457..2ef0cdcdd 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -419,16 +419,6 @@ void DiagramView::mousePressEvent(QMouseEvent *e) { switchToVisualisationModeIfNeeded(e); fresh_focus_in_ = false; } - if (isInteractive() && !scene -> isReadOnly()) { - if (e -> buttons() == Qt::MidButton) { - paste(mapToScene(e -> pos()), QClipboard::Selection); - } else { - if (is_adding_text && e -> buttons() == Qt::LeftButton) { - addDiagramTextAtPos(mapToScene(e -> pos())); - is_adding_text = false; - } - } - } QGraphicsView::mousePressEvent(e); } @@ -437,10 +427,26 @@ void DiagramView::mousePressEvent(QMouseEvent *e) { @param e QWheelEvent */ void DiagramView::wheelEvent(QWheelEvent *e) { - if (e -> delta() > 0) { - zoomIn(); - } else { - zoomOut(); + //Zoom and scrolling + if (e->buttons() != Qt::MidButton) { + if (!(e -> modifiers() & Qt::ControlModifier)) { + if (e -> delta() > 0) zoomIn(); + else zoomOut(); + } + 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; + } } }