diff --git a/source/SubWindowHandle.cpp b/source/SubWindowHandle.cpp index 09e1996..9c5f2cb 100644 --- a/source/SubWindowHandle.cpp +++ b/source/SubWindowHandle.cpp @@ -54,8 +54,6 @@ SubWindowHandle::SubWindowHandle( QWidget * parent ) : m_cWindowName = QString( " " ); m_bIsPlaying = true; - m_dScaleFactor = 1; - } SubWindowHandle::~SubWindowHandle() @@ -245,8 +243,8 @@ Void SubWindowHandle::stopEvent() Void SubWindowHandle::normalSize() { - m_dScaleFactor = 1.0; - m_cViewArea->setZoomFactor( m_dScaleFactor ); + Double scaleFactor = 1.0; + m_cViewArea->setZoomFactor( scaleFactor ); } Void SubWindowHandle::zoomToFit() @@ -264,9 +262,10 @@ Void SubWindowHandle::zoomToFit() Void SubWindowHandle::scaleView( Double factor ) { Q_ASSERT( m_cViewArea->image() ); - m_dScaleFactor *= factor; - m_cViewArea->setZoomFactor( m_dScaleFactor ); - adjustScrollBar( m_dScaleFactor ); + Double scaleFactor = m_cViewArea->getZoomFactor(); + scaleFactor *= factor; + m_cViewArea->setZoomFactor( scaleFactor ); + adjustScrollBar( scaleFactor ); } Void SubWindowHandle::scaleView( Int width, Int height ) @@ -283,7 +282,6 @@ Void SubWindowHandle::scaleView( const QSize & size ) // Calc the zoom factor Double wfactor = 1; Double hfactor = 1; - m_dScaleFactor = 1; wfactor = ( Double )newSize.width() / imgViewSize.width(); hfactor = ( Double )newSize.height() / imgViewSize.height(); diff --git a/source/SubWindowHandle.h b/source/SubWindowHandle.h index 11e90a2..0ac667a 100644 --- a/source/SubWindowHandle.h +++ b/source/SubWindowHandle.h @@ -57,8 +57,6 @@ private: QString m_cWindowName; QString m_cCurrFileName; - Double m_dScaleFactor; - Bool m_bIsPlaying; public: @@ -124,7 +122,7 @@ public: Double getScaleFactor() { - return m_dScaleFactor; + return m_cViewArea->getZoomFactor(); } QSize sizeHint() const; diff --git a/source/ViewArea.cpp b/source/ViewArea.cpp index 8949957..c64a16e 100755 --- a/source/ViewArea.cpp +++ b/source/ViewArea.cpp @@ -91,6 +91,12 @@ void ViewArea::clearMask() m_mask.clear(); } +Double ViewArea::getZoomFactor() +{ + return m_zoomFactor; +} + + // QSize ViewArea::sizeHint() const // { // int w = m_pixmap.width()*m_zoomFactor; @@ -103,6 +109,12 @@ void ViewArea::setZoomFactor( double f ) //if( f == m_zoomFactor ) //return; + if( f < ( 32.0 / m_pixmap.width() ) ) + f = 32.0 / m_pixmap.width(); + + if( f > 10.0 ) + f = 10.0; + m_zoomFactor = f; //emit( zoomFactorChanged( m_zoomFactor ) ); @@ -423,8 +435,6 @@ void ViewArea::wheelEvent( QWheelEvent *event ) double f; f = m_zoomFactor + 0.001 * event->delta(); - if( f < ( 32.0 / m_pixmap.width() ) ) - f = 32.0 / m_pixmap.width(); setZoomFactor( f ); diff --git a/source/ViewArea.h b/source/ViewArea.h index 82d8469..0b8a346 100755 --- a/source/ViewArea.h +++ b/source/ViewArea.h @@ -30,6 +30,7 @@ #include #include +#include "TypeDef.h" #include "GridManager.h" namespace plaYUVer @@ -104,6 +105,8 @@ public: void setInputStream( InputStream *stream ); InputStream* getInputStream(); + Double getZoomFactor(); + // QSize sizeHint() const; signals: diff --git a/source/plaYUVerApp.cpp b/source/plaYUVerApp.cpp index fa6cf15..0835a4e 100644 --- a/source/plaYUVerApp.cpp +++ b/source/plaYUVerApp.cpp @@ -222,8 +222,8 @@ void plaYUVerApp::scaleFrame( int ratio ) { activeSubWindow()->scaleView( ( Double )( ratio ) / 100.0 ); - actionZoomIn->setEnabled( activeSubWindow()->getScaleFactor() < 3.0 ); - actionZoomOut->setEnabled( activeSubWindow()->getScaleFactor() > 0.333 ); +// actionZoomIn->setEnabled( activeSubWindow()->getScaleFactor() < 3.0 ); +// actionZoomOut->setEnabled( activeSubWindow()->getScaleFactor() > 0.333 ); } }