src/hbwidgets/sliders/hbzoomslider_p.cpp
changeset 28 b7da29130b0e
parent 21 4633027730f5
equal deleted inserted replaced
23:e6ad4ef83b23 28:b7da29130b0e
    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  */