summaryrefslogtreecommitdiff
path: root/libopie2/opiemm/oimagescrollview.cpp
Unidiff
Diffstat (limited to 'libopie2/opiemm/oimagescrollview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiemm/oimagescrollview.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp
index 56be10b..37a1ad5 100644
--- a/libopie2/opiemm/oimagescrollview.cpp
+++ b/libopie2/opiemm/oimagescrollview.cpp
@@ -1,18 +1,19 @@
1#include "oimagescrollview.h" 1#include "oimagescrollview.h"
2 2
3#include <opie2/oimagezoomer.h> 3#include <opie2/oimagezoomer.h>
4#include <opie2/odebug.h> 4#include <opie2/odebug.h>
5#include <opie2/oapplication.h> 5#include <opie2/oapplication.h>
6#include <opie2/owait.h> 6#include <opie2/owait.h>
7#include <opie2/opieexif.h>
7 8
8#include <qimage.h> 9#include <qimage.h>
9#include <qlayout.h> 10#include <qlayout.h>
10 11
11/* for usage with the bitset */ 12/* for usage with the bitset */
12#define AUTO_SCALE 0 13#define AUTO_SCALE 0
13#define AUTO_ROTATE 1 14#define AUTO_ROTATE 1
14#define SHOW_ZOOMER 2 15#define SHOW_ZOOMER 2
15#define FIRST_RESIZE_DONE 3 16#define FIRST_RESIZE_DONE 3
16#define IMAGE_IS_JPEG 4 17#define IMAGE_IS_JPEG 4
17#define IMAGE_SCALED_LOADED 5 18#define IMAGE_SCALED_LOADED 5
18 19
@@ -78,36 +79,41 @@ void OImageScrollView::setImage(const QImage&img)
78 generateImage(); 79 generateImage();
79 } 80 }
80} 81}
81 82
82void OImageScrollView::loadJpeg(bool interncall) 83void OImageScrollView::loadJpeg(bool interncall)
83{ 84{
84 if (m_lastName.isEmpty()) return; 85 if (m_lastName.isEmpty()) return;
85 QImageIO iio( m_lastName, 0l ); 86 QImageIO iio( m_lastName, 0l );
86 QString param; 87 QString param;
87 bool real_load = false; 88 bool real_load = false;
88 if (AutoScale()) { 89 if (AutoScale()) {
89 if (!interncall) { 90 if (!interncall) {
91 ExifData xf;
92 bool scanned = xf.scan(m_lastName);
90 int wid, hei; 93 int wid, hei;
91 wid = QApplication::desktop()->width(); 94 wid = QApplication::desktop()->width();
92 hei = QApplication::desktop()->height(); 95 hei = QApplication::desktop()->height();
93 if (hei>wid) { 96 if (hei>wid) {
94 wid = hei; 97 wid = hei;
95 } else { 98 } else {
96 hei = wid; 99 hei = wid;
97 } 100 }
101 if ( (scanned && (wid<xf.getWidth()||hei<xf.getHeight()))||!scanned ) {
98 param = QString( "Fast Shrink( 3 ) Scale( %1, %2, ScaleMin)" ).arg( wid ).arg( hei ); 102 param = QString( "Fast Shrink( 3 ) Scale( %1, %2, ScaleMin)" ).arg( wid ).arg( hei );
99 odebug << "Load jpeg scaled \"" << param << "\"" << oendl; 103 odebug << "Load jpeg scaled \"" << param << "\"" << oendl;
100 iio.setParameters(param.latin1()); 104 iio.setParameters(param.latin1());
101 setImageScaledLoaded(true); 105 setImageScaledLoaded(true);
106 }
107
102 real_load = true; 108 real_load = true;
103 } 109 }
104 } else { 110 } else {
105 if (ImageScaledLoaded()||!interncall) { 111 if (ImageScaledLoaded()||!interncall) {
106 odebug << "Load jpeg unscaled" << oendl; 112 odebug << "Load jpeg unscaled" << oendl;
107 real_load = true; 113 real_load = true;
108 } 114 }
109 setImageScaledLoaded(false); 115 setImageScaledLoaded(false);
110 } 116 }
111 if (real_load) { 117 if (real_load) {
112 _original_data = iio.read() ? iio.image() : QImage(); 118 _original_data = iio.read() ? iio.image() : QImage();
113 } 119 }