From 1c122a4a8289f1606aa9543e4d6522f8f72aaa1f Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Sat, 28 Jun 2014 15:46:05 +0100 Subject: [PATCH] Change zoom behaviour on ViewArea: Now it requires a combination of Ctrl + mouse wheel --- source/app/ViewArea.cpp | 35 +++++++++++++++++++++-------------- source/app/ViewArea.h | 3 ++- source/app/plaYUVerApp.cpp | 1 + 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/source/app/ViewArea.cpp b/source/app/ViewArea.cpp index 1c2d190..c7965cb 100644 --- a/source/app/ViewArea.cpp +++ b/source/app/ViewArea.cpp @@ -109,6 +109,14 @@ void ViewArea::clearMask() // return QSize( w, h ); // } +Void ViewArea::setZoomFactor( Double f ) +{ + m_zoomFactor = f; + + updateSize(); + update(); +} + Void ViewArea::zoomChangeEvent(Double factor, QPoint center ) { Double zoomFactor; @@ -134,14 +142,6 @@ Void ViewArea::zoomChangeEvent(Double factor, QPoint center ) } -void ViewArea::setZoomFactor( double f ) -{ - m_zoomFactor = f; - - updateSize(); - update(); -} - void ViewArea::setMode( ViewMode mode ) { if( m_mode == mode ) @@ -523,13 +523,16 @@ void ViewArea::wheelEvent( QWheelEvent *event ) { Double factor; - factor = 0.001 * event->delta(); - if(factor>0) - factor=1.25; - else - factor=0.8; + if( event->modifiers() & Qt::ControlModifier ) + { + factor = 0.001 * event->delta(); + if(factor>0) + factor=1.25; + else + factor=0.8; + zoomChangeEvent( factor , event->pos() ); + } - zoomChangeEvent( factor , event->pos() ); } void ViewArea::mousePressEvent( QMouseEvent *event ) @@ -538,6 +541,10 @@ void ViewArea::mousePressEvent( QMouseEvent *event ) QPoint vpos = windowToView( event->pos() ); + if( event->button() == Qt::MidButton ) + { + + } if( event->button() == Qt::LeftButton ) { if( tool() == NavigationTool ) diff --git a/source/app/ViewArea.h b/source/app/ViewArea.h index de6f103..4604589 100644 --- a/source/app/ViewArea.h +++ b/source/app/ViewArea.h @@ -108,6 +108,7 @@ public: PlaYUVerStream* getInputStream(); Void zoomChangeEvent(Double factor, QPoint center); + void setTool( enum eTool tool ); // QSize sizeHint() const; @@ -128,7 +129,7 @@ public Q_SLOTS: void setGridVisible( bool enable ); void setSnapToGrid( bool enable ); void setSelectedArea( QRect &rect ); - void setZoomFactor( double f ); + void setZoomFactor( double ); protected: void paintEvent( QPaintEvent *event ); diff --git a/source/app/plaYUVerApp.cpp b/source/app/plaYUVerApp.cpp index a7dd23e..476451b 100644 --- a/source/app/plaYUVerApp.cpp +++ b/source/app/plaYUVerApp.cpp @@ -754,6 +754,7 @@ Void plaYUVerApp::zoomToFitAll() subWindow = qobject_cast( mdiArea->subWindowList().at( i ) ); subWindow->zoomToFit(); } + updateZoomFactorSBox(); } Void plaYUVerApp::scaleFrame( int ratio )