-rw-r--r-- | noncore/graphics/opie-eye/lib/oimagezoomer.cpp | 18 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/lib/oimagezoomer.h | 13 |
2 files changed, 26 insertions, 5 deletions
diff --git a/noncore/graphics/opie-eye/lib/oimagezoomer.cpp b/noncore/graphics/opie-eye/lib/oimagezoomer.cpp index 00b93e2..d1eec67 100644 --- a/noncore/graphics/opie-eye/lib/oimagezoomer.cpp +++ b/noncore/graphics/opie-eye/lib/oimagezoomer.cpp | |||
@@ -1,5 +1,7 @@ | |||
1 | #include "oimagezoomer.h" | 1 | #include "oimagezoomer.h" |
2 | 2 | ||
3 | #include <opie2/odebug.h> | ||
4 | |||
3 | #include <qimage.h> | 5 | #include <qimage.h> |
4 | #include <qpixmap.h> | 6 | #include <qpixmap.h> |
5 | #include <qpainter.h> | 7 | #include <qpainter.h> |
@@ -86,6 +88,7 @@ OImageZoomer::~OImageZoomer() { | |||
86 | } | 88 | } |
87 | 89 | ||
88 | void OImageZoomer::init() { | 90 | void OImageZoomer::init() { |
91 | m_mevent = false; | ||
89 | setFrameStyle( Panel | Sunken ); | 92 | setFrameStyle( Panel | Sunken ); |
90 | } | 93 | } |
91 | 94 | ||
@@ -195,8 +198,19 @@ void OImageZoomer::drawContents( QPainter* p ) { | |||
195 | p->drawRect( x, y, w, h ); | 198 | p->drawRect( x, y, w, h ); |
196 | } | 199 | } |
197 | 200 | ||
198 | void OImageZoomer::mousePressEvent( QMouseEvent* ) { | 201 | void OImageZoomer::mousePressEvent( QMouseEvent*ev) { |
199 | m_mouseX = m_mouseY = -1; | 202 | m_mouseX = m_mouseY = -1; |
203 | m_mevent = true; | ||
204 | } | ||
205 | |||
206 | void OImageZoomer::mouseReleaseEvent( QMouseEvent*ev) { | ||
207 | if (!m_mevent) return; | ||
208 | int mx, my; | ||
209 | mx = ev->x(); | ||
210 | my = ev->y(); | ||
211 | int diffx = (mx) * m_imgSize.width() / width(); | ||
212 | int diffy = (my) * m_imgSize.height() / height(); | ||
213 | emit zoomArea(diffx,diffy); | ||
200 | } | 214 | } |
201 | 215 | ||
202 | void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) { | 216 | void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) { |
@@ -205,10 +219,10 @@ void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) { | |||
205 | my = ev->y(); | 219 | my = ev->y(); |
206 | 220 | ||
207 | if ( m_mouseX != -1 && m_mouseY != -1 ) { | 221 | if ( m_mouseX != -1 && m_mouseY != -1 ) { |
222 | m_mevent = false; | ||
208 | int diffx = ( mx - m_mouseX ) * m_imgSize.width() / width(); | 223 | int diffx = ( mx - m_mouseX ) * m_imgSize.width() / width(); |
209 | int diffy = ( my - m_mouseY ) * m_imgSize.height() / height(); | 224 | int diffy = ( my - m_mouseY ) * m_imgSize.height() / height(); |
210 | emit zoomAreaRel( diffx, diffy ); | 225 | emit zoomAreaRel( diffx, diffy ); |
211 | emit zoomArea(m_visPt.x()+diffx, m_visPt.y()+diffy ); | ||
212 | } | 226 | } |
213 | m_mouseX = mx; | 227 | m_mouseX = mx; |
214 | m_mouseY = my; | 228 | m_mouseY = my; |
diff --git a/noncore/graphics/opie-eye/lib/oimagezoomer.h b/noncore/graphics/opie-eye/lib/oimagezoomer.h index 2516c61..0b356c9 100644 --- a/noncore/graphics/opie-eye/lib/oimagezoomer.h +++ b/noncore/graphics/opie-eye/lib/oimagezoomer.h | |||
@@ -71,7 +71,8 @@ signals: | |||
71 | 71 | ||
72 | /** | 72 | /** |
73 | * Here you get absolute coordinates. | 73 | * Here you get absolute coordinates. |
74 | * This slot will be emitted from within the mouseMoveEvent of this widget. | 74 | * This slot will be emitted from within the mouseReleaseEvent of this widget. |
75 | * if no mouse move where done. | ||
75 | * So you may not delete this widget | 76 | * So you may not delete this widget |
76 | * | 77 | * |
77 | * @param x The absolute X Coordinate to scroll to. | 78 | * @param x The absolute X Coordinate to scroll to. |
@@ -98,12 +99,17 @@ protected: | |||
98 | * make sure to call these if you reimplememt | 99 | * make sure to call these if you reimplememt |
99 | * @internal | 100 | * @internal |
100 | */ | 101 | */ |
101 | void mousePressEvent( QMouseEvent* ev ); | 102 | virtual void mousePressEvent( QMouseEvent* ev ); |
102 | /** | 103 | /** |
103 | * make sure to call these if you reimplement | 104 | * make sure to call these if you reimplement |
104 | * @internal | 105 | * @internal |
105 | */ | 106 | */ |
106 | void mouseMoveEvent( QMouseEvent* ev ); | 107 | virtual void mouseMoveEvent( QMouseEvent* ev ); |
108 | /** | ||
109 | * make sure to call these if you reimplement | ||
110 | * @internal | ||
111 | */ | ||
112 | virtual void mouseReleaseEvent( QMouseEvent* ev ); | ||
107 | 113 | ||
108 | private: | 114 | private: |
109 | /** | 115 | /** |
@@ -114,6 +120,7 @@ private: | |||
114 | QSize m_imgSize, m_visSize; | 120 | QSize m_imgSize, m_visSize; |
115 | QPoint m_visPt; | 121 | QPoint m_visPt; |
116 | int m_mouseX, m_mouseY; | 122 | int m_mouseX, m_mouseY; |
123 | bool m_mevent; | ||
117 | }; | 124 | }; |
118 | 125 | ||
119 | /** | 126 | /** |