author | alwin <alwin> | 2004-04-21 10:47:31 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-04-21 10:47:31 (UTC) |
commit | 6902a2e25e93f2c2d472b89a35e19668dffd4866 (patch) (unidiff) | |
tree | 7512cf17ca49b420dd4e6c9758fcc846b5e8cd1a | |
parent | f4ab243362a9b93f17e92bbf3189324f66c8f686 (diff) | |
download | opie-6902a2e25e93f2c2d472b89a35e19668dffd4866.zip opie-6902a2e25e93f2c2d472b89a35e19668dffd4866.tar.gz opie-6902a2e25e93f2c2d472b89a35e19668dffd4866.tar.bz2 |
improved painting, eg., when clip area is outside image we must not
paint the image of course....
-rw-r--r-- | libopie2/opiemm/oimagescrollview.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp index a8165a4..73df3ff 100644 --- a/libopie2/opiemm/oimagescrollview.cpp +++ b/libopie2/opiemm/oimagescrollview.cpp | |||
@@ -444,6 +444,7 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip | |||
444 | p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); | 444 | p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); |
445 | return; | 445 | return; |
446 | } | 446 | } |
447 | |||
447 | if (w>_pdata.width()) { | 448 | if (w>_pdata.width()) { |
448 | w=_pdata.width(); | 449 | w=_pdata.width(); |
449 | x = 0; | 450 | x = 0; |
@@ -451,6 +452,7 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip | |||
451 | } else if (x+w>_pdata.width()){ | 452 | } else if (x+w>_pdata.width()){ |
452 | x = _pdata.width()-w; | 453 | x = _pdata.width()-w; |
453 | } | 454 | } |
455 | |||
454 | if (h>_pdata.height()) { | 456 | if (h>_pdata.height()) { |
455 | h=_pdata.height(); | 457 | h=_pdata.height(); |
456 | y = 0; | 458 | y = 0; |
@@ -458,11 +460,24 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip | |||
458 | } else if (y+h>_pdata.height()){ | 460 | } else if (y+h>_pdata.height()){ |
459 | y = _pdata.height()-h; | 461 | y = _pdata.height()-h; |
460 | } | 462 | } |
461 | if (erase||_original_data.hasAlphaBuffer()) { | 463 | |
464 | if (erase||_original_data.hasAlphaBuffer()||clipy>_pdata.height()||clipx>_pdata.width()) { | ||
465 | odebug << QSize(clipx,clipy) << " # " << QSize(clipw,cliph) << oendl; | ||
462 | p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); | 466 | p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); |
463 | } | 467 | } |
468 | odebug << QSize(x,y) << " - " << QSize(w,h) << oendl; | ||
469 | if (clipy<=_pdata.height()&&clipx<=_pdata.width()) { | ||
470 | #if 0 | ||
471 | odebug << "painting image content" << oendl; | ||
472 | #endif | ||
464 | p->drawPixmap(clipx,clipy,_pdata,x,y,w,h); | 473 | p->drawPixmap(clipx,clipy,_pdata,x,y,w,h); |
465 | } | 474 | } |
475 | #if 0 | ||
476 | else { | ||
477 | odebug << "not painting image content" << oendl; | ||
478 | } | ||
479 | #endif | ||
480 | } | ||
466 | 481 | ||
467 | /* using the real geometry points and not the translated points is wanted! */ | 482 | /* using the real geometry points and not the translated points is wanted! */ |
468 | void OImageScrollView::viewportMouseMoveEvent(QMouseEvent* e) | 483 | void OImageScrollView::viewportMouseMoveEvent(QMouseEvent* e) |