summaryrefslogtreecommitdiff
path: root/libopie2
authoralwin <alwin>2004-04-23 13:23:42 (UTC)
committer alwin <alwin>2004-04-23 13:23:42 (UTC)
commit25f3f2fe15578fd4deb04a951e3e23927977e032 (patch) (unidiff)
tree3768cf6f77f04c852caabb22e332f3e070709903 /libopie2
parentda6a98dbc555018a29bf140ed8e890015240b322 (diff)
downloadopie-25f3f2fe15578fd4deb04a951e3e23927977e032.zip
opie-25f3f2fe15578fd4deb04a951e3e23927977e032.tar.gz
opie-25f3f2fe15578fd4deb04a951e3e23927977e032.tar.bz2
reduced the need of image calculations
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/oimagescrollview.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/libopie2/opiemm/oimagescrollview.cpp b/libopie2/opiemm/oimagescrollview.cpp
index 3f2699a..72248c1 100644
--- a/libopie2/opiemm/oimagescrollview.cpp
+++ b/libopie2/opiemm/oimagescrollview.cpp
@@ -37,49 +37,49 @@ OImageScrollView::OImageScrollView( QWidget* parent, const char* name, WFlags f
37OImageScrollView::OImageScrollView (const QImage&img, QWidget * parent, const char * name, WFlags f,bool always_scale,bool rfit) 37OImageScrollView::OImageScrollView (const QImage&img, QWidget * parent, const char * name, WFlags f,bool always_scale,bool rfit)
38 :QScrollView(parent,name,f|Qt::WRepaintNoErase),_image_data(),_original_data(img), 38 :QScrollView(parent,name,f|Qt::WRepaintNoErase),_image_data(),_original_data(img),
39 m_states(SCROLLVIEW_BITSET_SIZE),m_lastName("") 39 m_states(SCROLLVIEW_BITSET_SIZE),m_lastName("")
40{ 40{
41 _zoomer = 0; 41 _zoomer = 0;
42 m_states[AUTO_SCALE]=always_scale; 42 m_states[AUTO_SCALE]=always_scale;
43 m_states[AUTO_ROTATE]=rfit; 43 m_states[AUTO_ROTATE]=rfit;
44 m_states[FIRST_RESIZE_DONE]=false; 44 m_states[FIRST_RESIZE_DONE]=false;
45 m_states[IMAGE_IS_JPEG]=false; 45 m_states[IMAGE_IS_JPEG]=false;
46 m_states[IMAGE_SCALED_LOADED]=false; 46 m_states[IMAGE_SCALED_LOADED]=false;
47 m_states[SHOW_ZOOMER]=true; 47 m_states[SHOW_ZOOMER]=true;
48 _original_data.convertDepth(QPixmap::defaultDepth()); 48 _original_data.convertDepth(QPixmap::defaultDepth());
49 //_original_data.setAlphaBuffer(false); 49 _original_data.setAlphaBuffer(false);
50 init(); 50 init();
51} 51}
52 52
53OImageScrollView::OImageScrollView (const QString&img, QWidget * parent, const char * name, WFlags f,bool always_scale,bool rfit) 53OImageScrollView::OImageScrollView (const QString&img, QWidget * parent, const char * name, WFlags f,bool always_scale,bool rfit)
54 :QScrollView(parent,name,f|Qt::WRepaintNoErase),_image_data(),_original_data(),m_states(SCROLLVIEW_BITSET_SIZE),m_lastName("") 54 :QScrollView(parent,name,f|Qt::WRepaintNoErase),_image_data(),_original_data(),m_states(SCROLLVIEW_BITSET_SIZE),m_lastName("")
55{ 55{
56 _zoomer = 0; 56 _zoomer = 0;
57 m_states.resize(SCROLLVIEW_BITSET_SIZE); 57 m_states.resize(SCROLLVIEW_BITSET_SIZE);
58 m_states[AUTO_SCALE]=always_scale; 58 m_states[AUTO_SCALE]=always_scale;
59 m_states[AUTO_ROTATE]=rfit; 59 m_states[AUTO_ROTATE]=rfit;
60 m_states[FIRST_RESIZE_DONE]=false; 60 m_states[FIRST_RESIZE_DONE]=false;
61 m_states[IMAGE_IS_JPEG]=false; 61 m_states[IMAGE_IS_JPEG]=false;
62 m_states[IMAGE_SCALED_LOADED]=false; 62 m_states[IMAGE_SCALED_LOADED]=false;
63 m_states[SHOW_ZOOMER]=true; 63 m_states[SHOW_ZOOMER]=true;
64 init(); 64 init();
65 setImage(img); 65 setImage(img);
66} 66}
67 67
68void OImageScrollView::setImage(const QImage&img) 68void OImageScrollView::setImage(const QImage&img)
69{ 69{
70 _image_data = QImage(); 70 _image_data = QImage();
71 _original_data=img; 71 _original_data=img;
72 _original_data.convertDepth(QPixmap::defaultDepth()); 72 _original_data.convertDepth(QPixmap::defaultDepth());
73 //_original_data.setAlphaBuffer(false); 73 _original_data.setAlphaBuffer(false);
74 m_lastName = ""; 74 m_lastName = "";
75 setImageIsJpeg(false); 75 setImageIsJpeg(false);
76 setImageScaledLoaded(false); 76 setImageScaledLoaded(false);
77 if (FirstResizeDone()) { 77 if (FirstResizeDone()) {
78 generateImage(); 78 generateImage();
79 } 79 }
80} 80}
81 81
82void OImageScrollView::loadJpeg(bool interncall) 82void OImageScrollView::loadJpeg(bool interncall)
83{ 83{
84 if (m_lastName.isEmpty()) return; 84 if (m_lastName.isEmpty()) return;
85 QImageIO iio( m_lastName, 0l ); 85 QImageIO iio( m_lastName, 0l );
@@ -118,25 +118,25 @@ void OImageScrollView::setImage( const QString& path ) {
118 if (m_lastName == path) return; 118 if (m_lastName == path) return;
119 m_lastName = path; 119 m_lastName = path;
120 _original_data = QImage(); 120 _original_data = QImage();
121 QString itype = QImage::imageFormat(m_lastName); 121 QString itype = QImage::imageFormat(m_lastName);
122 odebug << "Image type = " << itype << oendl; 122 odebug << "Image type = " << itype << oendl;
123 if (itype == "JPEG") { 123 if (itype == "JPEG") {
124 setImageIsJpeg(true); 124 setImageIsJpeg(true);
125 loadJpeg(); 125 loadJpeg();
126 } else { 126 } else {
127 setImageIsJpeg(false); 127 setImageIsJpeg(false);
128 _original_data.load(path); 128 _original_data.load(path);
129 _original_data.convertDepth(QPixmap::defaultDepth()); 129 _original_data.convertDepth(QPixmap::defaultDepth());
130 //_original_data.setAlphaBuffer(false); 130 _original_data.setAlphaBuffer(false);
131 } 131 }
132 _image_data = QImage(); 132 _image_data = QImage();
133 if (FirstResizeDone()) { 133 if (FirstResizeDone()) {
134 generateImage(); 134 generateImage();
135 if (isVisible()) viewport()->repaint(true); 135 if (isVisible()) viewport()->repaint(true);
136 } 136 }
137} 137}
138 138
139/* should be called every time the QImage changed it content */ 139/* should be called every time the QImage changed it content */
140void OImageScrollView::init() 140void OImageScrollView::init()
141{ 141{
142 odebug << "init " << oendl; 142 odebug << "init " << oendl;
@@ -392,26 +392,27 @@ void OImageScrollView::generateImage()
392 } 392 }
393 /* 393 /*
394 * invalidate 394 * invalidate
395 */ 395 */
396 _image_data=QImage(); 396 _image_data=QImage();
397 if (isVisible()) { 397 if (isVisible()) {
398 updateContents(contentsX(),contentsY(),width(),height()); 398 updateContents(contentsX(),contentsY(),width(),height());
399 } 399 }
400} 400}
401 401
402void OImageScrollView::resizeEvent(QResizeEvent * e) 402void OImageScrollView::resizeEvent(QResizeEvent * e)
403{ 403{
404 odebug << "OImageScrollView resizeEvent" << oendl; 404 odebug << "OImageScrollView resizeEvent (" << e->size() << " - " << e->oldSize() << oendl;
405 QScrollView::resizeEvent(e); 405 QScrollView::resizeEvent(e);
406 if (e->oldSize()==e->size()||!isUpdatesEnabled ()) return;
406 generateImage(); 407 generateImage();
407 setFirstResizeDone(true); 408 setFirstResizeDone(true);
408 emit viewportSizeChanged( viewport()->size() ); 409 emit viewportSizeChanged( viewport()->size() );
409 410
410} 411}
411 412
412void OImageScrollView::keyPressEvent(QKeyEvent * e) 413void OImageScrollView::keyPressEvent(QKeyEvent * e)
413{ 414{
414 if (!e) return; 415 if (!e) return;
415 int dx = horizontalScrollBar()->lineStep(); 416 int dx = horizontalScrollBar()->lineStep();
416 int dy = verticalScrollBar()->lineStep(); 417 int dy = verticalScrollBar()->lineStep();
417 if (e->key()==Qt::Key_Right) { 418 if (e->key()==Qt::Key_Right) {