summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiemm/oimagescrollview.cpp46
1 files changed, 16 insertions, 30 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp
index 73df3ff..3f2699a 100644
--- a/libopie2/opiemm/oimagescrollview.cpp
+++ b/libopie2/opiemm/oimagescrollview.cpp
@@ -48,3 +48,3 @@ OImageScrollView::OImageScrollView (const QImage&img, QWidget * parent, const ch
48 _original_data.convertDepth(QPixmap::defaultDepth()); 48 _original_data.convertDepth(QPixmap::defaultDepth());
49 _original_data.setAlphaBuffer(false); 49 //_original_data.setAlphaBuffer(false);
50 init(); 50 init();
@@ -72,3 +72,3 @@ void OImageScrollView::setImage(const QImage&img)
72 _original_data.convertDepth(QPixmap::defaultDepth()); 72 _original_data.convertDepth(QPixmap::defaultDepth());
73 _original_data.setAlphaBuffer(false); 73 //_original_data.setAlphaBuffer(false);
74 m_lastName = ""; 74 m_lastName = "";
@@ -129,3 +129,3 @@ void OImageScrollView::setImage( const QString& path ) {
129 _original_data.convertDepth(QPixmap::defaultDepth()); 129 _original_data.convertDepth(QPixmap::defaultDepth());
130 _original_data.setAlphaBuffer(false); 130 //_original_data.setAlphaBuffer(false);
131 } 131 }
@@ -436,2 +436,7 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
436{ 436{
437 if (!_pdata.size().isValid()) {
438 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
439 return;
440 }
441
437 int w = clipw; 442 int w = clipw;
@@ -442,39 +447,20 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
442 447
443 if (!_pdata.size().isValid()) {
444 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
445 return;
446 }
447
448 if (w>_pdata.width()) { 448 if (w>_pdata.width()) {
449 w=_pdata.width(); 449 w = _pdata.width()-x;
450 x = 0;
451 erase = true; 450 erase = true;
452 } else if (x+w>_pdata.width()){
453 x = _pdata.width()-w;
454 } 451 }
455
456 if (h>_pdata.height()) { 452 if (h>_pdata.height()) {
457 h=_pdata.height(); 453 h = _pdata.height()-y;
458 y = 0;
459 erase = true; 454 erase = true;
460 } else if (y+h>_pdata.height()){
461 y = _pdata.height()-h;
462 } 455 }
463 456 if (!erase && (clipy+cliph>_pdata.height()||clipx+clipw>_pdata.width())) {
464 if (erase||_original_data.hasAlphaBuffer()||clipy>_pdata.height()||clipx>_pdata.width()) { 457 erase = true;
465 odebug << QSize(clipx,clipy) << " # " << QSize(clipw,cliph) << oendl; 458 }
459 if (erase||_original_data.hasAlphaBuffer()) {
466 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor()); 460 p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
467 } 461 }
468 odebug << QSize(x,y) << " - " << QSize(w,h) << oendl; 462 if (w>0 && h>0&&x<_pdata.width()&&y<_pdata.height()) {
469 if (clipy<=_pdata.height()&&clipx<=_pdata.width()) { 463 odebug << "Drawing pixmap" << oendl;
470#if 0
471 odebug << "painting image content" << oendl;
472#endif
473 p->drawPixmap(clipx,clipy,_pdata,x,y,w,h); 464 p->drawPixmap(clipx,clipy,_pdata,x,y,w,h);
474 } 465 }
475#if 0
476else {
477 odebug << "not painting image content" << oendl;
478 }
479#endif
480} 466}