summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui/imagescrollview.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/opie-eye/gui/imagescrollview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imagescrollview.cpp38
1 files changed, 36 insertions, 2 deletions
diff --git a/noncore/graphics/opie-eye/gui/imagescrollview.cpp b/noncore/graphics/opie-eye/gui/imagescrollview.cpp
index ad19219..5b12258 100644
--- a/noncore/graphics/opie-eye/gui/imagescrollview.cpp
+++ b/noncore/graphics/opie-eye/gui/imagescrollview.cpp
@@ -60,6 +60,21 @@ void ImageScrollView::setImage( const QString& path ) {
60void ImageScrollView::init() 60void ImageScrollView::init()
61{ 61{
62 odebug << "init " << oendl; 62 odebug << "init " << oendl;
63
64 /*
65 * create the zoomer
66 * and connect ther various signals
67 */
68 _zoomer = new Opie::MM::OImageZoomer( this, "The Zoomer" );
69 connect(_zoomer, SIGNAL( zoomAreaRel(int,int)),
70 this, SLOT(scrollBy(int,int)) );
71 connect(this,SIGNAL(contentsMoving(int,int)),
72 _zoomer, (SLOT(setVisiblePoint(int,int))) );
73 connect(this,SIGNAL(imageSizeChanged(const QSize&)),
74 _zoomer, SLOT(setImageSize(const QSize&)) );
75 connect(this,SIGNAL(viewportSizeChanged(const QSize&)),
76 _zoomer, SLOT(setViewPortSize(const QSize&)) );
77
63 viewport()->setBackgroundColor(white); 78 viewport()->setBackgroundColor(white);
64 setFocusPolicy(QWidget::StrongFocus); 79 setFocusPolicy(QWidget::StrongFocus);
65 if (first_resize_done) { 80 if (first_resize_done) {
@@ -251,6 +266,17 @@ void ImageScrollView::generateImage()
251 resizeContents(_image_data.width(),_image_data.height()); 266 resizeContents(_image_data.width(),_image_data.height());
252 } 267 }
253 _pdata.convertFromImage(_image_data); 268 _pdata.convertFromImage(_image_data);
269
270 /*
271 * update the zoomer
272 */
273 emit imageSizeChanged( _image_data.size() );
274 rescaleImage( 128, 128 );
275 _zoomer->setImage( _image_data );
276
277 /*
278 * invalidate
279 */
254 _image_data=QImage(); 280 _image_data=QImage();
255} 281}
256 282
@@ -260,6 +286,12 @@ void ImageScrollView::resizeEvent(QResizeEvent * e)
260 QScrollView::resizeEvent(e); 286 QScrollView::resizeEvent(e);
261 generateImage(); 287 generateImage();
262 first_resize_done = true; 288 first_resize_done = true;
289 emit viewportSizeChanged( viewport()->size() );
290
291 /*
292 * move scrollbar
293 */
294 _zoomer->setGeometry( viewport()->width()-100, viewport()->height()-50, 100, 50 );
263} 295}
264 296
265void ImageScrollView::keyPressEvent(QKeyEvent * e) 297void ImageScrollView::keyPressEvent(QKeyEvent * e)
@@ -320,6 +352,7 @@ void ImageScrollView::drawContents(QPainter * p, int clipx, int clipy, int clipw
320/* using the real geometry points and not the translated points is wanted! */ 352/* using the real geometry points and not the translated points is wanted! */
321void ImageScrollView::viewportMouseMoveEvent(QMouseEvent* e) 353void ImageScrollView::viewportMouseMoveEvent(QMouseEvent* e)
322{ 354{
355 odebug << "Move X and Y " << e->x() << " " << e->y() << oendl;
323 int mx, my; 356 int mx, my;
324 mx = e->x(); 357 mx = e->x();
325 my = e->y(); 358 my = e->y();
@@ -346,12 +379,13 @@ void ImageScrollView::viewportMouseMoveEvent(QMouseEvent* e)
346 _mouseStartPosY=my; 379 _mouseStartPosY=my;
347} 380}
348 381
349void ImageScrollView::contentsMousePressEvent ( QMouseEvent * ) 382void ImageScrollView::contentsMousePressEvent ( QMouseEvent * e)
350{ 383{
384 odebug << " X and Y " << e->x() << " " << e->y() << oendl;
351 /* this marks the beginning of a possible mouse move. Due internal reasons of QT 385 /* this marks the beginning of a possible mouse move. Due internal reasons of QT
352 the geometry values here may real differ from that set in MoveEvent (I don't know 386 the geometry values here may real differ from that set in MoveEvent (I don't know
353 why). For getting them in real context, we use the first move-event to set the start 387 why). For getting them in real context, we use the first move-event to set the start
354 position ;) 388 position ;)
355 */ 389 */
356 _mouseStartPosX = -1; 390 _mouseStartPosX = -1;
357 _mouseStartPosY = -1; 391 _mouseStartPosY = -1;