Merge branch 'devel' of github.com:pixlra/playuver into devel

This commit is contained in:
jfmcarreira committed 2015-01-25 23:42:46 +00:00
commit 2ad6966bef
3 files changed
+41 -10

No files matched your search

+4 -4
View File
@@ -348,7 +348,7 @@ Void VideoSubWindow::normalSize()
if( factor != curFactor )
{
Double usedScale;
usedScale = m_cViewArea->scaleZoomFactor( factor / curFactor, QPoint() );
usedScale = m_cViewArea->scaleZoomFactor( factor / curFactor, QPoint(), QSize() );
adjustScrollBarByScale( usedScale, QPoint() );
}
}
@@ -366,7 +366,7 @@ Void VideoSubWindow::zoomToFactor( Double factor, QPoint center )
if( factor != curFactor )
{
Double usedScale;
usedScale = m_cViewArea->scaleZoomFactor( factor / curFactor, center );
usedScale = m_cViewArea->scaleZoomFactor( factor / curFactor, center, QSize() );
adjustScrollBarByScale( usedScale, center );
}
}
@@ -377,7 +377,7 @@ Void VideoSubWindow::scaleView( Double scale, QPoint center )
if( scale != 1.0 )
{
Double usedScale;
usedScale = m_cViewArea->scaleZoomFactor( scale, center );
usedScale = m_cViewArea->scaleZoomFactor( scale, center, getScrollSize() );
adjustScrollBarByScale( usedScale, center );
}
}
@@ -409,7 +409,7 @@ Void VideoSubWindow::scaleView( const QSize & size, QPoint center )
if( factor != curFactor )
{
Double usedScale;
usedScale = m_cViewArea->scaleZoomFactor( factor / curFactor, center );
usedScale = m_cViewArea->scaleZoomFactor( factor / curFactor, center, getScrollSize() );
adjustScrollBarByScale( usedScale, center );
}
}
+36 -5
View File
@@ -111,12 +111,41 @@ Void ViewArea::setZoomFactor( Double f )
update();
}
Double ViewArea::scaleZoomFactor( Double scale, QPoint center )
Double ViewArea::scaleZoomFactor( Double scale, QPoint center, QSize minimumSize )
{
Double zoomFactor;
Double maxZoom = 100.0;
Double minZoom = 0.01; //( 1.0 / m_pixmap.width() );
Double new_scale = 1.0;
Double zoomFactor = m_zoomFactor * scale;
if(!minimumSize.isNull())
{
Double cw = m_pixmap.width()*m_zoomFactor;
Double ch = m_pixmap.height()*m_zoomFactor;
Double fw = m_pixmap.width()*zoomFactor;
Double fh = m_pixmap.height()*zoomFactor;
Double mw = minimumSize.width();
Double mh = minimumSize.height();
if( (cw < mw) && (ch < mh) && (scale < 1) )
{
return new_scale;
}
if( (fw < mw) && (fh < mh) && (scale < 1) )
{
Double wfactor = mw/fw;
Double hfactor = mh/fh;
if( wfactor < hfactor )
scale = wfactor;
else
scale = hfactor;
zoomFactor = zoomFactor * scale;
scale = zoomFactor/m_zoomFactor;
}
}
if( ( m_zoomFactor == minZoom ) && ( scale < 1 ) )
return new_scale;
@@ -124,7 +153,7 @@ Double ViewArea::scaleZoomFactor( Double scale, QPoint center )
if( ( m_zoomFactor == maxZoom ) && ( scale > 1 ) )
return new_scale;
zoomFactor = m_zoomFactor * scale;
new_scale = scale;
if( zoomFactor < minZoom )
@@ -291,7 +320,7 @@ void ViewArea::resizeEvent( QResizeEvent *event )
if( size().isEmpty() || m_pixmap.isNull() )
return;
updateOffset();
updateSize();
update();
}
////////////////////////////////////////////////////////////////////////////////
@@ -569,7 +598,9 @@ void ViewArea::wheelEvent( QWheelEvent *event )
else
scale=0.8;
usedScale = scaleZoomFactor( scale , event->pos() );
QWidget *p = parentWidget();
QSize minimumSize = QSize( p->size().width() - 5, p->size().height() - 5 );
usedScale = scaleZoomFactor( scale , event->pos(), minimumSize );
if( usedScale != 1.0 )
{
emit zoomFactorChanged_byWheel( usedScale, event->pos() );
+1 -1
View File
@@ -116,7 +116,7 @@ public:
PlaYUVerStream* getInputStream();
// Scale function. Return used scale value (it may change when it touches the min or max zoom value)
Double scaleZoomFactor(Double scale, QPoint center);
Double scaleZoomFactor(Double scale, QPoint center, QSize minimumSize);
void setTool( eTool tool );