src/hbwidgets/sliders/hbzoomslider_p.cpp
changeset 34 ed14f46c0e55
parent 3 11d3954df52a
equal deleted inserted replaced
31:7516d6d86cf5 34:ed14f46c0e55
    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) ) {
   131         elementItemMap[HbSlider::IncreaseElement].item = 
   137         elementItemMap[HbSlider::IncreaseElement].item = 
   132             q->style( )->createPrimitive( HbStyle::P_SliderElement_increase, q);
   138             HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_increase, q);
   133         HbStyle::setItemName( elementItemMap[HbSlider::IncreaseElement].item, "increment-icon" );
   139         HbStyle::setItemName( elementItemMap[HbSlider::IncreaseElement].item, "increment-icon" );
   134         elementItemMap[HbSlider::IncreaseElement].type= HbStyle::P_SliderElement_increase;
   140         elementItemMap[HbSlider::IncreaseElement].type= HbStylePrivate::P_SliderElement_increase;
   135         elementItemMap[HbSlider::IncreaseElement].touchItem = 
   141         elementItemMap[HbSlider::IncreaseElement].touchItem = 
   136             q->style( )->createPrimitive( HbStyle::P_SliderElement_touchincrease,q );
   142             HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_touchincrease,q );
   137         HbStyle::setItemName( elementItemMap[HbSlider::IncreaseElement].touchItem, "increment-icon-toucharea" );
   143         HbStyle::setItemName( elementItemMap[HbSlider::IncreaseElement].touchItem, "increment-icon-toucharea" );
   138     }
   144     }
   139 
   145 
   140     if ( !elementItemMap.contains(HbSlider::DecreaseElement) ) {
   146     if ( !elementItemMap.contains(HbSlider::DecreaseElement) ) {
   141         elementItemMap[HbSlider::DecreaseElement].item = 
   147         elementItemMap[HbSlider::DecreaseElement].item = 
   142             q->style( )->createPrimitive( HbStyle::P_SliderElement_decrease, q);
   148             HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_decrease, q);
   143         elementItemMap[HbSlider::DecreaseElement].type = HbStyle::P_SliderElement_decrease;
   149         elementItemMap[HbSlider::DecreaseElement].type = HbStylePrivate::P_SliderElement_decrease;
   144         HbStyle::setItemName( elementItemMap[HbSlider::DecreaseElement].item, "decrement-icon" );
   150         HbStyle::setItemName( elementItemMap[HbSlider::DecreaseElement].item, "decrement-icon" );
   145         elementItemMap[HbSlider::DecreaseElement].touchItem = q->style( )->createPrimitive( HbStyle::P_SliderElement_touchdecrease,q ) ;
   151         elementItemMap[HbSlider::DecreaseElement].touchItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_touchdecrease,q ) ;
   146         HbStyle::setItemName( elementItemMap[HbSlider::DecreaseElement].touchItem, "decrement-icon-toucharea" );
   152         HbStyle::setItemName( elementItemMap[HbSlider::DecreaseElement].touchItem, "decrement-icon-toucharea" );
   147     }
   153     }
   148 
   154 
   149     HbStyleOptionSlider option;
   155     HbStyleOptionSlider option;
   150     q->initStyleOption( &option );
   156     q->initStyleOption( &option );
   151     option.sliderElementIcon = icons.value( HbSlider::IncreaseElement ); 
   157     option.sliderElementIcon = icons.value( HbSlider::IncreaseElement ); 
   152     q->style( )->updatePrimitive(elementItemMap[HbSlider::IncreaseElement].item ,HbStyle::P_SliderElement_increase,&option );
   158     HbStylePrivate::updatePrimitive(elementItemMap[HbSlider::IncreaseElement].item ,HbStylePrivate::P_SliderElement_increase,&option );
   153     option.sliderElementIcon = icons.value( HbSlider::DecreaseElement ); 
   159     option.sliderElementIcon = icons.value( HbSlider::DecreaseElement ); 
   154     q->style( )->updatePrimitive(elementItemMap[HbSlider::DecreaseElement].item ,HbStyle::P_SliderElement_decrease,&option );
   160     HbStylePrivate::updatePrimitive(elementItemMap[HbSlider::DecreaseElement].item ,HbStylePrivate::P_SliderElement_decrease,&option );
   155     q->setFlags( QGraphicsItem::ItemIsFocusable );
   161     q->setFlags( QGraphicsItem::ItemIsFocusable );
   156     q->connect( q, SIGNAL( textClicked( ) ), q, SLOT( _q_resetToDefault( ) ) );
   162     q->connect( q, SIGNAL( textClicked( ) ), q, SLOT( _q_resetToDefault( ) ) );
   157     q->setProperty("changeincrementState" ,false);
   163     q->setProperty("changeincrementState" ,false);
   158     q->setProperty("changedecrementState" ,false);
   164     q->setProperty("changedecrementState" ,false);
   159     q->setProperty("state", "normal");
   165     q->setProperty("state", "normal");
   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  */