From 92775fac487ca3fd7cb5eeaff8c39f12f4b28958 Mon Sep 17 00:00:00 2001 From: Luis Lucas Date: Sun, 18 Jan 2015 01:07:55 +0000 Subject: [PATCH] Enable first version of ZOOM ALL function. --- app/SubWindowHandle.h | 4 ++-- app/VideoSubWindow.cpp | 12 ++++++------ app/VideoSubWindow.h | 6 +++--- app/plaYUVerApp.cpp | 15 ++++++++++++++- app/plaYUVerApp.h | 1 + 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/app/SubWindowHandle.h b/app/SubWindowHandle.h index a8059b6..d966103 100644 --- a/app/SubWindowHandle.h +++ b/app/SubWindowHandle.h @@ -71,13 +71,13 @@ public: /* * Scale the image (zoomed in or out) to speficied absolute zoom value (1.0 = original size). */ - virtual Void zoomToFactor( Double ) = 0; + virtual Void zoomToFactor( Double factor , QPoint center = QPoint() ) = 0; /** * Scale the image by a given factor * @param factor factor of scale. Ex: 1.2 scale the image up by 20% and * 0.8 scale the image down by 25% */ - virtual Void scaleView( Double ) = 0; + virtual Void scaleView( Double , QPoint center = QPoint() ) = 0; virtual Double getScaleFactor() = 0; diff --git a/app/VideoSubWindow.cpp b/app/VideoSubWindow.cpp index e06a3fc..7dedbcc 100644 --- a/app/VideoSubWindow.cpp +++ b/app/VideoSubWindow.cpp @@ -351,21 +351,21 @@ Void VideoSubWindow::zoomToFit() scaleView( getScrollSize() ); } -Void VideoSubWindow::zoomToFactor(Double factor) +Void VideoSubWindow::zoomToFactor( Double factor , QPoint center ) { Double curFactor; curFactor = getScaleFactor() ; if( factor != curFactor ) - m_cViewArea->scaleZoomFactor( factor/curFactor, QPoint() ); + m_cViewArea->scaleZoomFactor( factor/curFactor, center ); } -Void VideoSubWindow::scaleView( Double scale ) +Void VideoSubWindow::scaleView( Double scale , QPoint center ) { Q_ASSERT( m_cViewArea->image() ); - m_cViewArea->scaleZoomFactor( scale, QPoint() ); + m_cViewArea->scaleZoomFactor( scale, center ); } -Void VideoSubWindow::scaleView( const QSize & size ) +Void VideoSubWindow::scaleView( const QSize & size, QPoint center ) { QSize imgViewSize; if( m_pcCurrFrame ) @@ -390,7 +390,7 @@ Void VideoSubWindow::scaleView( const QSize & size ) Double curFactor = getScaleFactor() ; if( factor != curFactor ) - m_cViewArea->scaleZoomFactor( factor/curFactor, QPoint() ); + m_cViewArea->scaleZoomFactor( factor/curFactor, center ); } diff --git a/app/VideoSubWindow.h b/app/VideoSubWindow.h index fcafe0d..9674d3e 100644 --- a/app/VideoSubWindow.h +++ b/app/VideoSubWindow.h @@ -88,7 +88,7 @@ private: * Private zoom function to handle * zoom to fit */ - Void scaleView( const QSize & size ); + Void scaleView( const QSize & size , QPoint center = QPoint() ); public: VideoSubWindow( QWidget * parent = 0, Bool isModule = false ); @@ -164,8 +164,8 @@ public: */ Void normalSize(); Void zoomToFit(); - Void scaleView( Double scale ); - Void zoomToFactor( Double factor ); + Void scaleView( Double scale , QPoint center = QPoint() ); + Void zoomToFactor( Double factor , QPoint center = QPoint() ); Double getScaleFactor() { diff --git a/app/plaYUVerApp.cpp b/app/plaYUVerApp.cpp index c6d9a3c..94e1485 100644 --- a/app/plaYUVerApp.cpp +++ b/app/plaYUVerApp.cpp @@ -416,6 +416,16 @@ Void plaYUVerApp::zoomToFitAll() updateZoomFactorSBox(); } +Void plaYUVerApp::zoomToFactorAll( double factor ) +{ + SubWindowHandle *subWindow; + for( Int i = 0; i < mdiArea->subWindowList().size(); i++ ) + { + subWindow = qobject_cast( mdiArea->subWindowList().at( i ) ); + subWindow->zoomToFactor(factor); + } +} + Void plaYUVerApp::scaleFrame( int ratio ) { if( m_pcCurrentSubWindow ) @@ -427,10 +437,13 @@ Void plaYUVerApp::scaleFrame( int ratio ) Void plaYUVerApp::zoomFromSBox( double zoom ) { + Double factor = zoom/100; if( activeSubWindow() ) { - activeSubWindow()->zoomToFactor( zoom/100 ); + activeSubWindow()->zoomToFactor( factor ); } + + zoomToFactorAll( factor ); } Void plaYUVerApp::updateZoomFactorSBox() diff --git a/app/plaYUVerApp.h b/app/plaYUVerApp.h index b843276..b563f00 100644 --- a/app/plaYUVerApp.h +++ b/app/plaYUVerApp.h @@ -89,6 +89,7 @@ private Q_SLOTS: void normalSize(); void zoomToFit(); void zoomToFitAll(); + void zoomToFactorAll( double factor ); void setTool( int idxTool );