summaryrefslogtreecommitdiff
path: root/libopie2/opiemm
authoralwin <alwin>2004-04-16 20:33:55 (UTC)
committer alwin <alwin>2004-04-16 20:33:55 (UTC)
commitcc56768485c3785439883dd1c456493f7ece2d84 (patch) (side-by-side diff)
tree8ab6ff6feae6f2cc9cb73b4eaf8215cdd0d53a0d /libopie2/opiemm
parent7dc52619640437ec448ea3bccdf924ea9a29bfa6 (diff)
downloadopie-cc56768485c3785439883dd1c456493f7ece2d84.zip
opie-cc56768485c3785439883dd1c456493f7ece2d84.tar.gz
opie-cc56768485c3785439883dd1c456493f7ece2d84.tar.bz2
fixed painting problems when reloading images when widget is visible
Diffstat (limited to 'libopie2/opiemm') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/oimagescrollview.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp
index 61b2062..a8165a4 100644
--- a/libopie2/opiemm/oimagescrollview.cpp
+++ b/libopie2/opiemm/oimagescrollview.cpp
@@ -158,5 +158,5 @@ void OImageScrollView::init()
_zoomer, SLOT(setViewPortSize(const QSize&)) );
- viewport()->setBackgroundColor(white);
+ setBackgroundColor(white);
setFocusPolicy(QWidget::StrongFocus);
setImageScaledLoaded(false);
@@ -352,5 +352,5 @@ void OImageScrollView::generateImage()
}
-
+ int twidth,theight;
odebug << " r = " << r << oendl;
if (AutoScale() && (_original_data.width()>width() || _original_data.height() > height()) ) {
@@ -364,5 +364,4 @@ void OImageScrollView::generateImage()
}
rescaleImage(width(),height());
- resizeContents(_image_data.width(),_image_data.height());
} else if (!FirstResizeDone()||r!=m_last_rot||_image_data.width()==0) {
if (r==Rotate0) {
@@ -372,7 +371,8 @@ void OImageScrollView::generateImage()
}
m_last_rot = r;
- resizeContents(_image_data.width(),_image_data.height());
}
_pdata.convertFromImage(_image_data);
+ twidth = _image_data.width();
+ theight = _image_data.height();
/*
@@ -382,4 +382,5 @@ void OImageScrollView::generateImage()
emit imageSizeChanged( _image_data.size() );
rescaleImage( 128, 128 );
+ resizeContents(twidth,theight);
/*
* move scrollbar
@@ -394,4 +395,7 @@ void OImageScrollView::generateImage()
*/
_image_data=QImage();
+ if (isVisible()) {
+ updateContents(contentsX(),contentsY(),width(),height());
+ }
}
@@ -438,5 +442,5 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
if (!_pdata.size().isValid()) {
- p->fillRect(clipx,clipy,clipw,cliph,white);
+ p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
return;
}
@@ -456,5 +460,5 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
}
if (erase||_original_data.hasAlphaBuffer()) {
- p->fillRect(clipx,clipy,clipw,cliph,white);
+ p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
}
p->drawPixmap(clipx,clipy,_pdata,x,y,w,h);