summaryrefslogtreecommitdiff
Unidiff
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
@@ -7,7 +7,6 @@
7 7
8#include <qimage.h> 8#include <qimage.h>
9#include <qlayout.h> 9#include <qlayout.h>
10#include <qpe/qcopenvelope_qws.h>
11 10
12/* for usage with the bitset */ 11/* for usage with the bitset */
13#define AUTO_SCALE 0 12#define AUTO_SCALE 0
@@ -110,14 +109,7 @@ void OImageScrollView::loadJpeg(bool interncall)
110 setImageScaledLoaded(false); 109 setImageScaledLoaded(false);
111 } 110 }
112 if (real_load) { 111 if (real_load) {
113 {
114 QCopEnvelope( "QPE/System", "busy()" );
115 }
116 _original_data = iio.read() ? iio.image() : QImage(); 112 _original_data = iio.read() ? iio.image() : QImage();
117 {
118 QCopEnvelope env( "QPE/System", "notBusy(QString)" );
119 env << "Image loaded";
120 }
121 } 113 }
122} 114}
123 115
@@ -132,17 +124,10 @@ void OImageScrollView::setImage( const QString& path ) {
132 setImageIsJpeg(true); 124 setImageIsJpeg(true);
133 loadJpeg(); 125 loadJpeg();
134 } else { 126 } else {
135 {
136 QCopEnvelope( "QPE/System", "busy()" );
137 }
138 setImageIsJpeg(false); 127 setImageIsJpeg(false);
139 _original_data.load(path); 128 _original_data.load(path);
140 _original_data.convertDepth(QPixmap::defaultDepth()); 129 _original_data.convertDepth(QPixmap::defaultDepth());
141 _original_data.setAlphaBuffer(false); 130 _original_data.setAlphaBuffer(false);
142 {
143 QCopEnvelope env( "QPE/System", "notBusy(QString)" );
144 env << "Image loaded";
145 }
146 } 131 }
147 _image_data = QImage(); 132 _image_data = QImage();
148 if (FirstResizeDone()) { 133 if (FirstResizeDone()) {
@@ -200,12 +185,15 @@ bool OImageScrollView::AutoRotate()const
200 return m_states.testBit(AUTO_ROTATE); 185 return m_states.testBit(AUTO_ROTATE);
201} 186}
202 187
188void OImageScrollView::setAutoScaleRotate(bool scale, bool rotate)
189{
190 m_states.setBit(AUTO_ROTATE,rotate);
191 setAutoScale(scale);
192}
193
203void OImageScrollView::setAutoScale(bool how) 194void OImageScrollView::setAutoScale(bool how)
204{ 195{
205 m_states.setBit(AUTO_SCALE,how); 196 m_states.setBit(AUTO_SCALE,how);
206 if (!how) {
207 setAutoRotate(false);
208 }
209 _image_data = QImage(); 197 _image_data = QImage();
210 if (ImageIsJpeg() && how == false && ImageScaledLoaded()==true) { 198 if (ImageIsJpeg() && how == false && ImageScaledLoaded()==true) {
211 loadJpeg(true); 199 loadJpeg(true);
@@ -358,9 +346,6 @@ void OImageScrollView::generateImage()
358 if (_zoomer) _zoomer->setImage( _image_data ); 346 if (_zoomer) _zoomer->setImage( _image_data );
359 return; 347 return;
360 } 348 }
361 {
362 QCopEnvelope( "QPE/System", "busy()" );
363 }
364 if (width()>height()&&_original_data.width()<_original_data.height() || 349 if (width()>height()&&_original_data.width()<_original_data.height() ||
365 width()<height()&&_original_data.width()>_original_data.height()) { 350 width()<height()&&_original_data.width()>_original_data.height()) {
366 if (AutoRotate()) r = Rotate90; 351 if (AutoRotate()) r = Rotate90;
@@ -408,10 +393,6 @@ void OImageScrollView::generateImage()
408 * invalidate 393 * invalidate
409 */ 394 */
410 _image_data=QImage(); 395 _image_data=QImage();
411 {
412 QCopEnvelope env( "QPE/System", "notBusy(QString)" );
413 env << "Image generated";
414 }
415} 396}
416 397
417void OImageScrollView::resizeEvent(QResizeEvent * e) 398void 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
@@ -88,6 +88,19 @@ public:
88 */ 88 */
89 virtual void setAutoScale(bool how); 89 virtual void setAutoScale(bool how);
90 /** 90 /**
91 * set if the image should be scaled to the size of the viewport if larger(!)
92 * and/or rotate to best fit. You avoid double repainting when you want to switch
93 * booth values.
94 *
95 * if autoscaling is set when loading a jpeg image, it will use a feature of
96 * jpeg lib to load the image scaled to display size. If switch of later the
97 * image will reloaded.
98 *
99 * @param scale true - display image scaled down otherwise not
100 * @param rotate true - the image will rotate for best fit
101 */
102 virtual void setAutoScaleRotate(bool scale, bool rotate);
103 /**
91 * set if there should be displayed a small zoomer widget at the right bottom of 104 * set if there should be displayed a small zoomer widget at the right bottom of
92 * the view when the image is larger than the viewport. 105 * the view when the image is larger than the viewport.
93 * 106 *