summaryrefslogtreecommitdiff
Side-by-side diff
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
_original_data.convertDepth(QPixmap::defaultDepth());
- _original_data.setAlphaBuffer(false);
+ //_original_data.setAlphaBuffer(false);
init();
@@ -72,3 +72,3 @@ void OImageScrollView::setImage(const QImage&img)
_original_data.convertDepth(QPixmap::defaultDepth());
- _original_data.setAlphaBuffer(false);
+ //_original_data.setAlphaBuffer(false);
m_lastName = "";
@@ -129,3 +129,3 @@ void OImageScrollView::setImage( const QString& path ) {
_original_data.convertDepth(QPixmap::defaultDepth());
- _original_data.setAlphaBuffer(false);
+ //_original_data.setAlphaBuffer(false);
}
@@ -436,2 +436,7 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
{
+ if (!_pdata.size().isValid()) {
+ p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
+ return;
+ }
+
int w = clipw;
@@ -442,39 +447,20 @@ void OImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clip
- if (!_pdata.size().isValid()) {
- p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
- return;
- }
-
if (w>_pdata.width()) {
- w=_pdata.width();
- x = 0;
+ w = _pdata.width()-x;
erase = true;
- } else if (x+w>_pdata.width()){
- x = _pdata.width()-w;
}
-
if (h>_pdata.height()) {
- h=_pdata.height();
- y = 0;
+ h = _pdata.height()-y;
erase = true;
- } else if (y+h>_pdata.height()){
- y = _pdata.height()-h;
}
-
- if (erase||_original_data.hasAlphaBuffer()||clipy>_pdata.height()||clipx>_pdata.width()) {
- odebug << QSize(clipx,clipy) << " # " << QSize(clipw,cliph) << oendl;
+ if (!erase && (clipy+cliph>_pdata.height()||clipx+clipw>_pdata.width())) {
+ erase = true;
+ }
+ if (erase||_original_data.hasAlphaBuffer()) {
p->fillRect(clipx,clipy,clipw,cliph, backgroundColor());
}
- odebug << QSize(x,y) << " - " << QSize(w,h) << oendl;
- if (clipy<=_pdata.height()&&clipx<=_pdata.width()) {
-#if 0
- odebug << "painting image content" << oendl;
-#endif
+ if (w>0 && h>0&&x<_pdata.width()&&y<_pdata.height()) {
+ odebug << "Drawing pixmap" << oendl;
p->drawPixmap(clipx,clipy,_pdata,x,y,w,h);
}
-#if 0
-else {
- odebug << "not painting image content" << oendl;
- }
-#endif
}