Rewrite some zoom functions. Zoom is done in the middle of the image.

This commit is contained in:
Luis Lucas committed 2014-03-24 01:44:54 +00:00
1 parent ecd98887f3
commit bd3b2cf4eb
4 files changed
+41 -22

No files matched your search

+32 -14
View File
@@ -104,19 +104,34 @@ Double ViewArea::getZoomFactor()
// return QSize( w, h );
// }
Void ViewArea::zoomChangeEvent(Double factor)
{
Double zoomFactor;
Double maxZoom = 10.0;
Double minZoom = ( 32.0 / m_pixmap.width() );
if( ( m_zoomFactor == minZoom ) && (factor < 1 ) )
return;
if( ( m_zoomFactor == maxZoom ) && (factor > 1 ) )
return;
zoomFactor = m_zoomFactor * factor;
if( zoomFactor < minZoom )
zoomFactor = minZoom;
if( zoomFactor > maxZoom )
zoomFactor = maxZoom;
setZoomFactor( zoomFactor );
emit zoomFactorChanged(factor);
}
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 ) );
updateSize();
update();
@@ -432,12 +447,15 @@ void ViewArea::paintEvent( QPaintEvent *event )
////////////////////////////////////////////////////////////////////////////////
void ViewArea::wheelEvent( QWheelEvent *event )
{
double f;
Double factor;
f = m_zoomFactor + 0.001 * event->delta();
setZoomFactor( f );
factor = 0.001 * event->delta();
if(factor>0)
factor=1.25;
else
factor=0.8;
zoomChangeEvent( factor );
}
void ViewArea::mousePressEvent( QMouseEvent *event )