Diffstat (limited to 'libopie2/opiemm/oimagescrollview.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiemm/oimagescrollview.cpp | 6 |
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 | ||
82 | void OImageScrollView::loadJpeg(bool interncall) | 83 | void 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 | } |