author | alwin <alwin> | 2004-04-07 20:28:21 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-04-07 20:28:21 (UTC) |
commit | 52ccc71e2859ae9d738629249baeef3e3df992a2 (patch) (side-by-side diff) | |
tree | 7315f7b6810cb246296fea30e35c4f1205be97f3 | |
parent | f8e633dea182beabbb665a25136b43a9dd7d0558 (diff) | |
download | opie-52ccc71e2859ae9d738629249baeef3e3df992a2.zip opie-52ccc71e2859ae9d738629249baeef3e3df992a2.tar.gz opie-52ccc71e2859ae9d738629249baeef3e3df992a2.tar.bz2 |
speed up painting a lot - drawing QImage seems to be a real bad idea.
Painting QPixmap instead.
-rw-r--r-- | noncore/graphics/opie-eye/gui/imagescrollview.cpp | 30 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/imagescrollview.h | 2 |
2 files changed, 21 insertions, 11 deletions
diff --git a/noncore/graphics/opie-eye/gui/imagescrollview.cpp b/noncore/graphics/opie-eye/gui/imagescrollview.cpp index 98054ff..ad19219 100644 --- a/noncore/graphics/opie-eye/gui/imagescrollview.cpp +++ b/noncore/graphics/opie-eye/gui/imagescrollview.cpp @@ -19,4 +19,6 @@ ImageScrollView::ImageScrollView (const QImage&img, QWidget * parent, const char rotate_to_fit(rfit),first_resize_done(false),m_lastName("") { + _original_data.convertDepth(QPixmap::defaultDepth()); + _original_data.setAlphaBuffer(false); init(); } @@ -34,4 +36,6 @@ void ImageScrollView::setImage(const QImage&img) _image_data = QImage(); _original_data=img; + _original_data.convertDepth(QPixmap::defaultDepth()); + _original_data.setAlphaBuffer(false); m_lastName = ""; if (first_resize_done) { @@ -45,4 +49,6 @@ void ImageScrollView::setImage( const QString& path ) { m_lastName = path; _original_data.load(path); + _original_data.convertDepth(QPixmap::defaultDepth()); + _original_data.setAlphaBuffer(false); _image_data = QImage(); if (first_resize_done) { @@ -245,4 +251,6 @@ void ImageScrollView::generateImage() resizeContents(_image_data.width(),_image_data.height()); } + _pdata.convertFromImage(_image_data); + _image_data=QImage(); } @@ -286,26 +294,26 @@ void ImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clipw bool erase = false; - if (!_image_data.size().isValid()) { + if (!_pdata.size().isValid()) { p->fillRect(clipx,clipy,clipw,cliph,white); return; } - if (w>_image_data.width()) { - w=_image_data.width(); + if (w>_pdata.width()) { + w=_pdata.width(); x = 0; erase = true; - } else if (x+w>_image_data.width()){ - x = _image_data.width()-w; + } else if (x+w>_pdata.width()){ + x = _pdata.width()-w; } - if (h>_image_data.height()) { - h=_image_data.height(); + if (h>_pdata.height()) { + h=_pdata.height(); y = 0; erase = true; - } else if (y+h>_image_data.height()){ - y = _image_data.height()-h; + } else if (y+h>_pdata.height()){ + y = _pdata.height()-h; } - if (erase||_image_data.hasAlphaBuffer()) { + if (erase||_original_data.hasAlphaBuffer()) { p->fillRect(clipx,clipy,clipw,cliph,white); } - p->drawImage(clipx,clipy,_image_data,x,y,w,h); + p->drawPixmap(clipx,clipy,_pdata,x,y,w,h); } diff --git a/noncore/graphics/opie-eye/gui/imagescrollview.h b/noncore/graphics/opie-eye/gui/imagescrollview.h index 17e2f5f..eb91dbd 100644 --- a/noncore/graphics/opie-eye/gui/imagescrollview.h +++ b/noncore/graphics/opie-eye/gui/imagescrollview.h @@ -4,4 +4,5 @@ #include <qscrollview.h> #include <qimage.h> +#include <qpixmap.h> #include <qstring.h> #include <qdialog.h> @@ -41,4 +42,5 @@ protected: QImage _image_data; QImage _original_data; + QPixmap _pdata; int _mouseStartPosX,_mouseStartPosY; |