summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui/imagescrollview.cpp
authoralwin <alwin>2004-04-07 20:28:21 (UTC)
committer alwin <alwin>2004-04-07 20:28:21 (UTC)
commit52ccc71e2859ae9d738629249baeef3e3df992a2 (patch) (side-by-side diff)
tree7315f7b6810cb246296fea30e35c4f1205be97f3 /noncore/graphics/opie-eye/gui/imagescrollview.cpp
parentf8e633dea182beabbb665a25136b43a9dd7d0558 (diff)
downloadopie-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.
Diffstat (limited to 'noncore/graphics/opie-eye/gui/imagescrollview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imagescrollview.cpp30
1 files changed, 19 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);
}