-rw-r--r-- | libopie2/opiemm/oimagescrollview.cpp | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp index 68b06af..30a8fba 100644 --- a/libopie2/opiemm/oimagescrollview.cpp +++ b/libopie2/opiemm/oimagescrollview.cpp @@ -98,3 +98,3 @@ void OImageScrollView::loadJpeg(bool interncall) } - param = QString( "Fast Shrink( 3 ) Scale( %1, %2, ScaleFree)" ).arg( wid ).arg( hei ); + param = QString( "Fast Shrink( 3 ) Scale( %1, %2, ScaleMin)" ).arg( wid ).arg( hei ); odebug << "Load jpeg scaled \"" << param << "\"" << oendl; @@ -127,2 +127,3 @@ void OImageScrollView::setImage( const QString& path ) { m_lastName = path; + _original_data = QImage(); QString itype = QImage::imageFormat(m_lastName); @@ -148,2 +149,3 @@ void OImageScrollView::setImage( const QString& path ) { generateImage(); + if (isVisible()) viewport()->repaint(true); } @@ -352,3 +354,8 @@ void OImageScrollView::generateImage() Rotation r = Rotate0; - if (_original_data.isNull()) return; + _pdata = QPixmap(); + if (_original_data.isNull()) { + emit imageSizeChanged( _image_data.size() ); + if (_zoomer) _zoomer->setImage( _image_data ); + return; + } { @@ -361,4 +368,5 @@ void OImageScrollView::generateImage() + odebug << " r = " << r << oendl; - if (AutoScale()) { + if (AutoScale() && (_original_data.width()>width() || _original_data.height() > height()) ) { if (!_image_data.size().isValid()||width()>_image_data.width()||height()>_image_data.height()) { @@ -384,3 +392,2 @@ void OImageScrollView::generateImage() - /* @@ -477,3 +484,2 @@ void OImageScrollView::viewportMouseMoveEvent(QMouseEvent* e) { - odebug << "Move X and Y " << e->x() << " " << e->y() << oendl; int mx, my; @@ -484,16 +490,2 @@ void OImageScrollView::viewportMouseMoveEvent(QMouseEvent* e) int diffy = _mouseStartPosY-my; -#if 0 - QScrollBar*xbar = horizontalScrollBar(); - QScrollBar*ybar = verticalScrollBar(); - if (xbar->value()+diffx>xbar->maxValue()) { - diffx = xbar->maxValue()-xbar->value(); - } else if (xbar->value()+diffx<0) { - diffx=0-xbar->value(); - } - if (ybar->value()+diffy>ybar->maxValue()) { - diffy = ybar->maxValue()-ybar->value(); - } else if (ybar->value()+diffy<0) { - diffy=0-ybar->value(); - } -#endif scrollBy(diffx,diffy); |