29 #include "hbinstance.h" |
29 #include "hbinstance.h" |
30 #include "hbwidget.h" |
30 #include "hbwidget.h" |
31 #include "hbslidercontrol_p.h" |
31 #include "hbslidercontrol_p.h" |
32 #include <QGraphicsSceneEvent> |
32 #include <QGraphicsSceneEvent> |
33 #include <QGraphicsScene> |
33 #include <QGraphicsScene> |
|
34 #ifdef HB_GESTURE_FW |
|
35 #include <hbtapgesture.h> |
|
36 #endif |
34 |
37 |
35 /*! |
38 /*! |
36 Example usage: |
39 Example usage: |
37 \code |
40 \code |
38 HbSlider *slider = new HbSlider(Qt::Horizontal); |
41 HbSlider *slider = new HbSlider(Qt::Horizontal); |
121 elements << HbSlider::IncreaseElement |
124 elements << HbSlider::IncreaseElement |
122 << HbSlider::TrackElement |
125 << HbSlider::TrackElement |
123 << HbSlider::DecreaseElement |
126 << HbSlider::DecreaseElement |
124 << HbSlider::TextElement; |
127 << HbSlider::TextElement; |
125 setElements( elements ); |
128 setElements( elements ); |
|
129 #ifdef HB_GESTURE_FW |
|
130 q->grabGesture(Qt::TapGesture); |
|
131 #endif |
126 |
132 |
127 // create element because HbSlider will not create element for NULL Icon |
133 // create element because HbSlider will not create element for NULL Icon |
128 // and zoom slider Icon is set in style |
134 // and zoom slider Icon is set in style |
129 |
135 |
130 if ( !elementItemMap.contains(HbSlider::IncreaseElement) ) { |
136 if ( !elementItemMap.contains(HbSlider::IncreaseElement) ) { |
247 /*! |
253 /*! |
248 \reimp |
254 \reimp |
249 */ |
255 */ |
250 void HbZoomSlider::mousePressEvent( QGraphicsSceneMouseEvent *event ) |
256 void HbZoomSlider::mousePressEvent( QGraphicsSceneMouseEvent *event ) |
251 { |
257 { |
|
258 #ifndef HB_GESTURE_FW |
252 Q_D( HbZoomSlider ); |
259 Q_D( HbZoomSlider ); |
253 if( d->elementItemMap.contains(HbSlider::IncreaseElement) ) { |
260 if( d->elementItemMap.contains(HbSlider::IncreaseElement) ) { |
254 if ( d->elementItemMap[HbSlider::IncreaseElement].touchItem->isUnderMouse( ) ) { |
261 if ( d->elementItemMap[HbSlider::IncreaseElement].touchItem->isUnderMouse( ) ) { |
255 setProperty("changeincrementState" ,true); |
262 setProperty("changeincrementState" ,true); |
256 setProperty("changedecrementState" ,false); |
263 setProperty("changedecrementState" ,false); |
264 setProperty("state", "pressed"); |
271 setProperty("state", "pressed"); |
265 } |
272 } |
266 } |
273 } |
267 |
274 |
268 HbSlider::mousePressEvent( event ); |
275 HbSlider::mousePressEvent( event ); |
|
276 #else |
|
277 Q_UNUSED(event) |
|
278 #endif |
269 } |
279 } |
270 |
280 |
271 /*! |
281 /*! |
272 \reimp |
282 \reimp |
273 |
283 |
274 */ |
284 */ |
275 void HbZoomSlider::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) |
285 void HbZoomSlider::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) |
276 { |
286 { |
|
287 #ifndef HB_GESTURE_FW |
277 Q_D( HbZoomSlider ); |
288 Q_D( HbZoomSlider ); |
278 HbSlider::mouseReleaseEvent( event ); |
289 HbSlider::mouseReleaseEvent( event ); |
279 d->stopRepeatAction( ); |
290 d->stopRepeatAction( ); |
280 setProperty("changeincrementState" ,false); |
291 setProperty("changeincrementState" ,false); |
281 setProperty("changedecrementState" ,false); |
292 setProperty("changedecrementState" ,false); |
282 setProperty("state", "normal"); |
293 setProperty("state", "normal"); |
|
294 #else |
|
295 Q_UNUSED (event) |
|
296 #endif |
|
297 } |
|
298 /*! |
|
299 \reimp |
|
300 */ |
|
301 void HbZoomSlider::gestureEvent(QGestureEvent *event) |
|
302 { |
|
303 Q_D(HbZoomSlider); |
|
304 //consume the event if gesture is on increment or decrement |
|
305 if (HbTapGesture *tap = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture))) { |
|
306 QPointF pos = event->mapToGraphicsScene(tap->position()); |
|
307 switch( tap->state( ) ) { |
|
308 case Qt::GestureStarted: { |
|
309 if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) { |
|
310 if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) { |
|
311 if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) { |
|
312 setProperty("changeincrementState" ,true); |
|
313 setProperty("changedecrementState" ,false); |
|
314 setProperty("state", "pressed"); |
|
315 |
|
316 } |
|
317 } |
|
318 } |
|
319 if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) { |
|
320 if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) { |
|
321 if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) { |
|
322 setProperty("changeincrementState" ,false); |
|
323 setProperty("changedecrementState" ,true); |
|
324 setProperty("state", "pressed"); |
|
325 } |
|
326 } |
|
327 } |
|
328 } |
|
329 break; |
|
330 case Qt::GestureCanceled: |
|
331 case Qt::GestureFinished: { |
|
332 setProperty("changeincrementState" ,false); |
|
333 setProperty("changedecrementState" ,false); |
|
334 setProperty("state", "normal"); |
|
335 } |
|
336 default: |
|
337 break; |
|
338 |
|
339 |
|
340 } |
|
341 } |
|
342 HbSlider::gestureEvent(event); |
283 } |
343 } |
284 |
344 |
285 /*! |
345 /*! |
286 \reimp |
346 \reimp |
287 */ |
347 */ |