author | alwin <alwin> | 2004-04-16 07:39:26 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-04-16 07:39:26 (UTC) |
commit | 9692c199f1f8b4c334687081e0d75bfbf9375ad8 (patch) (side-by-side diff) | |
tree | 3ab64a3de58d5f266229d99d0eeae20a1d49f254 /libopie2 | |
parent | 7c29eeaecc8301fb500851382b3d94092ae72719 (diff) | |
download | opie-9692c199f1f8b4c334687081e0d75bfbf9375ad8.zip opie-9692c199f1f8b4c334687081e0d75bfbf9375ad8.tar.gz opie-9692c199f1f8b4c334687081e0d75bfbf9375ad8.tar.bz2 |
- displaying a busy makes no sense here. It results in double paintings
- method to set autoscale/autorotate at once
-rw-r--r-- | libopie2/opiemm/oimagescrollview.cpp | 31 | ||||
-rw-r--r-- | libopie2/opiemm/oimagescrollview.h | 13 |
2 files changed, 19 insertions, 25 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp index 30a8fba..61b2062 100644 --- a/libopie2/opiemm/oimagescrollview.cpp +++ b/libopie2/opiemm/oimagescrollview.cpp @@ -4,13 +4,12 @@ #include <opie2/odebug.h> #include <opie2/oapplication.h> #include <opie2/owait.h> #include <qimage.h> #include <qlayout.h> -#include <qpe/qcopenvelope_qws.h> /* for usage with the bitset */ #define AUTO_SCALE 0 #define AUTO_ROTATE 1 #define SHOW_ZOOMER 2 #define FIRST_RESIZE_DONE 3 @@ -107,20 +106,13 @@ void OImageScrollView::loadJpeg(bool interncall) odebug << "Load jpeg unscaled" << oendl; real_load = true; } setImageScaledLoaded(false); } if (real_load) { - { - QCopEnvelope( "QPE/System", "busy()" ); - } _original_data = iio.read() ? iio.image() : QImage(); - { - QCopEnvelope env( "QPE/System", "notBusy(QString)" ); - env << "Image loaded"; - } } } void OImageScrollView::setImage( const QString& path ) { odebug << "load new image " << oendl; if (m_lastName == path) return; @@ -129,23 +121,16 @@ void OImageScrollView::setImage( const QString& path ) { QString itype = QImage::imageFormat(m_lastName); odebug << "Image type = " << itype << oendl; if (itype == "JPEG") { setImageIsJpeg(true); loadJpeg(); } else { - { - QCopEnvelope( "QPE/System", "busy()" ); - } setImageIsJpeg(false); _original_data.load(path); _original_data.convertDepth(QPixmap::defaultDepth()); _original_data.setAlphaBuffer(false); - { - QCopEnvelope env( "QPE/System", "notBusy(QString)" ); - env << "Image loaded"; - } } _image_data = QImage(); if (FirstResizeDone()) { generateImage(); if (isVisible()) viewport()->repaint(true); } @@ -197,18 +182,21 @@ void OImageScrollView::setAutoRotate(bool how) bool OImageScrollView::AutoRotate()const { return m_states.testBit(AUTO_ROTATE); } +void OImageScrollView::setAutoScaleRotate(bool scale, bool rotate) +{ + m_states.setBit(AUTO_ROTATE,rotate); + setAutoScale(scale); +} + void OImageScrollView::setAutoScale(bool how) { m_states.setBit(AUTO_SCALE,how); - if (!how) { - setAutoRotate(false); - } _image_data = QImage(); if (ImageIsJpeg() && how == false && ImageScaledLoaded()==true) { loadJpeg(true); } generateImage(); } @@ -355,15 +343,12 @@ void OImageScrollView::generateImage() _pdata = QPixmap(); if (_original_data.isNull()) { emit imageSizeChanged( _image_data.size() ); if (_zoomer) _zoomer->setImage( _image_data ); return; } - { - QCopEnvelope( "QPE/System", "busy()" ); - } if (width()>height()&&_original_data.width()<_original_data.height() || width()<height()&&_original_data.width()>_original_data.height()) { if (AutoRotate()) r = Rotate90; } @@ -405,16 +390,12 @@ void OImageScrollView::generateImage() _zoomer->setImage( _image_data ); } /* * invalidate */ _image_data=QImage(); - { - QCopEnvelope env( "QPE/System", "notBusy(QString)" ); - env << "Image generated"; - } } void OImageScrollView::resizeEvent(QResizeEvent * e) { odebug << "OImageScrollView resizeEvent" << oendl; QScrollView::resizeEvent(e); diff --git a/libopie2/opiemm/oimagescrollview.h b/libopie2/opiemm/oimagescrollview.h index 94fddb6..01a2d56 100644 --- a/libopie2/opiemm/oimagescrollview.h +++ b/libopie2/opiemm/oimagescrollview.h @@ -85,12 +85,25 @@ public: * image will reloaded. * * @param how true - display image scaled down otherwise not */ virtual void setAutoScale(bool how); /** + * set if the image should be scaled to the size of the viewport if larger(!) + * and/or rotate to best fit. You avoid double repainting when you want to switch + * booth values. + * + * if autoscaling is set when loading a jpeg image, it will use a feature of + * jpeg lib to load the image scaled to display size. If switch of later the + * image will reloaded. + * + * @param scale true - display image scaled down otherwise not + * @param rotate true - the image will rotate for best fit + */ + virtual void setAutoScaleRotate(bool scale, bool rotate); + /** * set if there should be displayed a small zoomer widget at the right bottom of * the view when the image is larger than the viewport. * * @param how true - display zoomer */ virtual void setShowZoomer(bool how); |