summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/oimagescrollview.cpp31
-rw-r--r--libopie2/opiemm/oimagescrollview.h13
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
@@ -6,9 +6,8 @@
#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
@@ -109,16 +108,9 @@ void OImageScrollView::loadJpeg(bool interncall)
}
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 ) {
@@ -131,19 +123,12 @@ void OImageScrollView::setImage( const QString& path ) {
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();
@@ -199,14 +184,17 @@ 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);
}
@@ -357,11 +345,8 @@ void OImageScrollView::generateImage()
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;
}
@@ -407,12 +392,8 @@ void OImageScrollView::generateImage()
/*
* invalidate
*/
_image_data=QImage();
- {
- QCopEnvelope env( "QPE/System", "notBusy(QString)" );
- env << "Image generated";
- }
}
void OImageScrollView::resizeEvent(QResizeEvent * 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
@@ -87,8 +87,21 @@ public:
* @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