src/hbwidgets/sliders/hbslidercontrol.cpp
changeset 3 11d3954df52a
parent 2 06ff229162e9
child 6 c3690ec91ef8
equal deleted inserted replaced
2:06ff229162e9 3:11d3954df52a
    60     snappingMode( HbSliderControl::MinorTickSnapping ), // snapping mode
    60     snappingMode( HbSliderControl::MinorTickSnapping ), // snapping mode
    61     majorTickInterval( 0 ),// major tick interval
    61     majorTickInterval( 0 ),// major tick interval
    62     minorTickInterval( 0 ),// minor tick interval
    62     minorTickInterval( 0 ),// minor tick interval
    63     groove( 0 ), //slider groove
    63     groove( 0 ), //slider groove
    64     progressGroove( 0 ),//progress mask top of groove
    64     progressGroove( 0 ),//progress mask top of groove
    65     tickmarksLeft( 0 ), // slider left/top tick mark item
       
    66     tickmarksRight( 0 ),// slider right/bottom tick mark item
       
    67     tickmarkslabelLeft( 0 ),// slider left/above tick mark label
       
    68     tickmarkslabelRight ( 0 ),// slider right/bottom tick mark label
       
    69     displayCurrValueToolTip( true ), // holds whether to show current value tooltip or not
    65     displayCurrValueToolTip( true ), // holds whether to show current value tooltip or not
    70     toolTipAlignment( Qt::AlignTop|Qt::AlignRight ), // tooltip alignment
    66     toolTipAlignment( Qt::AlignTop|Qt::AlignRight ), // tooltip alignment
    71     groovePressed( false ), // hold whether groove is pressed or not
    67     groovePressed( false ), // hold whether groove is pressed or not
    72     setDefault( false ), // holds whther default value for track press is set
    68     setDefault( false ), // holds whther default value for track press is set
    73     previousValue( 0 ),  // default value for track press
    69     previousValue( 0 ),  // default value for track press
   127     q->connect( q , SIGNAL( actionTriggered( int ) ), q , SLOT( showToolTip( ) ) );
   123     q->connect( q , SIGNAL( actionTriggered( int ) ), q , SLOT( showToolTip( ) ) );
   128     q->connect( q , SIGNAL( sliderReleased( ) ), q , SLOT( hideToolTip( ) ) );
   124     q->connect( q , SIGNAL( sliderReleased( ) ), q , SLOT( hideToolTip( ) ) );
   129     q->setFlags( QGraphicsItem::ItemIsFocusable );
   125     q->setFlags( QGraphicsItem::ItemIsFocusable );
   130 }
   126 }
   131 
   127 
   132 /*!
   128 
   133   \internal
       
   134   Updates tick and Label.
       
   135   */
       
   136 void HbSliderControlPrivate::updateTickAndLabel( )
       
   137 {
       
   138     if (tickmarksLeft) {
       
   139         tickmarksLeft->updateTicks();
       
   140     }
       
   141     if (tickmarksRight) {
       
   142         tickmarksRight->updateTicks();
       
   143     }
       
   144     if( tickmarkslabelLeft ) {
       
   145         tickmarkslabelLeft->updateTickLabels();
       
   146     }
       
   147     if( tickmarkslabelRight ) {
       
   148         tickmarkslabelRight->updateTickLabels( );
       
   149     }
       
   150 }
       
   151 
       
   152 
       
   153 /*!
       
   154   \internal
       
   155   Updates tick and Label.
       
   156   */
       
   157 void HbSliderControlPrivate::deleteTickAndLabel( )
       
   158 {
       
   159     if (tickmarksLeft) {
       
   160         delete tickmarksLeft;
       
   161         tickmarksLeft = 0;
       
   162 
       
   163     }  
       
   164     if (tickmarksRight) {
       
   165         delete tickmarksRight;
       
   166         tickmarksRight = 0;
       
   167     }
       
   168 
       
   169  
       
   170     if( tickmarkslabelLeft ) {
       
   171         delete tickmarkslabelLeft;
       
   172         tickmarkslabelLeft = 0;
       
   173     }
       
   174     if( tickmarkslabelRight ) {
       
   175         delete tickmarkslabelRight;
       
   176         tickmarkslabelRight = 0;
       
   177     }
       
   178 
       
   179 }
       
   180 
   129 
   181 /*!
   130 /*!
   182   \internal
   131   \internal
   183   This is used to create the handle, is virtual and can be overridden to create different handle.
   132   This is used to create the handle, is virtual and can be overridden to create different handle.
   184   */
   133   */
   321     }
   270     }
   322     // return sliderPosition( ) if snapping mode is NoSnapping
   271     // return sliderPosition( ) if snapping mode is NoSnapping
   323     return ( q->sliderPosition( ) );
   272     return ( q->sliderPosition( ) );
   324 }
   273 }
   325 
   274 
   326 void HbSliderControlPrivate::createSliderTicks( )
       
   327 {
       
   328 
       
   329     Q_Q ( HbSliderControl);
       
   330     if (! tickmarksLeft) {
       
   331         tickmarksLeft =  new HbSliderTickmarks(q);
       
   332         tickmarksLeft->setTickPosition (Hb::SliderTicksLeft);
       
   333         } 
       
   334     if (!tickmarksRight) {
       
   335        tickmarksRight =  new HbSliderTickmarks(q);
       
   336        tickmarksRight->setTickPosition ( Hb::SliderTicksRight);
       
   337     }
       
   338     if ( orientation == Qt::Vertical ) {
       
   339         HbStyle::setItemName( tickmarksLeft, "tick-marksleft" );
       
   340         HbStyle::setItemName( tickmarksRight, "tick-marksright" );
       
   341     } else {
       
   342         HbStyle::setItemName( tickmarksLeft, "tick-marksabove" );
       
   343         HbStyle::setItemName( tickmarksRight, "tick-marksbelow" );
       
   344     }
       
   345 }
       
   346 
       
   347 void HbSliderControlPrivate::positionTickMarks( )
       
   348 {
       
   349     Q_Q (HbSliderControl);
       
   350     if (!tickmarksLeft||!tickmarksRight) {
       
   351         return;
       
   352     }
       
   353       // SliderTickLeft and SliderTicksAbove value is same
       
   354     if ( tickPosition & Hb::SliderTicksLeft) {
       
   355         tickmarksLeft->createIcons(true);
       
   356     } else {
       
   357         tickmarksLeft->createIcons(false);
       
   358     }
       
   359     if ( tickPosition & Hb::SliderTicksRight ) {
       
   360         tickmarksRight->createIcons(true);
       
   361     } else {
       
   362         tickmarksRight->createIcons(false);
       
   363     }
       
   364     if ( orientation == Qt::Vertical ) {
       
   365         if ( tickPosition & Hb::SliderTicksAbsolute)  {
       
   366             q->setLayoutDirection (Qt::LeftToRight );
       
   367             }
       
   368     }
       
   369 }
       
   370 
       
   371 void HbSliderControlPrivate::createSliderTickLabels( )
       
   372 {   
       
   373     Q_Q(HbSliderControl);
       
   374     if (! tickmarkslabelLeft) {
       
   375         tickmarkslabelLeft =  new HbSliderTickmarksLabel(q);
       
   376         tickmarkslabelLeft->setTickPosition (Hb::SliderTicksLeft);
       
   377      } 
       
   378     if (!tickmarkslabelRight) {
       
   379         tickmarkslabelRight =  new HbSliderTickmarksLabel(q);
       
   380         tickmarkslabelRight->setTickPosition (Hb::SliderTicksRight );
       
   381      }
       
   382     if ( orientation == Qt::Horizontal ) {
       
   383         HbStyle::setItemName( tickmarkslabelLeft, "tick-textsabove" );
       
   384         HbStyle::setItemName( tickmarkslabelRight, "tick-textsbelow" );
       
   385     } else {
       
   386         HbStyle::setItemName( tickmarkslabelLeft, "tick-textsleft" );
       
   387         HbStyle::setItemName( tickmarkslabelRight, "tick-textsright" );
       
   388     }
       
   389 
       
   390 }
       
   391 
       
   392 
       
   393 void HbSliderControlPrivate::positionTickMarksLabel( )
       
   394 {
       
   395     if (!tickmarkslabelLeft||!tickmarkslabelRight) {
       
   396         return;
       
   397     }
       
   398       // SliderTickLeft and SliderTicksAbove value is same
       
   399     if ( tickPosition & Hb::SliderTicksLeft) {
       
   400         tickmarkslabelLeft->createText(true);
       
   401     } else {
       
   402         tickmarkslabelLeft->createText(false);
       
   403     }
       
   404     if ( tickPosition & Hb::SliderTicksRight ) {
       
   405         tickmarkslabelRight->createText(true);
       
   406     } else {
       
   407         tickmarkslabelRight->createText(false);
       
   408     }
       
   409 }
       
   410 
       
   411 
       
   412 /*!
   275 /*!
   413     Constructs a slider control with \a parent.
   276     Constructs a slider control with \a parent.
   414 */
   277 */
   415 HbSliderControl::HbSliderControl( QGraphicsItem *parent )
   278 HbSliderControl::HbSliderControl( QGraphicsItem *parent )
   416     : HbAbstractSliderControl( *new HbSliderControlPrivate, parent )
   279     : HbAbstractSliderControl( *new HbSliderControlPrivate, parent )
   480 void HbSliderControl::setTickPosition( Hb::SliderTickPositions position )
   343 void HbSliderControl::setTickPosition( Hb::SliderTickPositions position )
   481 {
   344 {
   482     Q_D( HbSliderControl );
   345     Q_D( HbSliderControl );
   483     if ( d->tickPosition != position ) {
   346     if ( d->tickPosition != position ) {
   484         d->tickPosition = position;
   347         d->tickPosition = position;
   485         unsetLayoutDirection( );
   348      }
   486         if ( position == Hb::NoSliderTicks) {
       
   487             d->deleteTickAndLabel( );
       
   488         } else {
       
   489             if ( (!d->tickmarksLeft || !d->tickmarksRight) && d->majorTickInterval > 0) {
       
   490                 d->createSliderTicks( );
       
   491                 d->positionTickMarks( );
       
   492                 repolish( );
       
   493 
       
   494             }
       
   495             if ( (!d->tickmarkslabelLeft || !d->tickmarkslabelRight) && d->majorTickInterval > 0 &&
       
   496                 (!d->majorLabel.isEmpty( ) || (!d->minorLabel.isEmpty( ) && d->minorTickInterval > 0) ) ) {
       
   497                 d->createSliderTickLabels( );
       
   498                 d->positionTickMarksLabel ( );
       
   499                 repolish( );
       
   500             }
       
   501             d->positionTickMarks( );
       
   502             d->positionTickMarksLabel( );
       
   503         }
       
   504     }
       
   505 }
   349 }
   506 
   350 
   507 /*!
   351 /*!
   508     Returns the interval between major tickmarks.
   352     Returns the interval between major tickmarks.
   509 
   353 
   529 void HbSliderControl::setMajorTickInterval( int interval )
   373 void HbSliderControl::setMajorTickInterval( int interval )
   530 {
   374 {
   531     Q_D( HbSliderControl );
   375     Q_D( HbSliderControl );
   532     if ( d->majorTickInterval != interval ) {
   376     if ( d->majorTickInterval != interval ) {
   533         d->majorTickInterval = qAbs ( interval );
   377         d->majorTickInterval = qAbs ( interval );
   534         if (interval <= 0 ) {
   378 
   535             d->deleteTickAndLabel();
       
   536             repolish();
       
   537         } else if( d->tickPosition!=Hb::NoSliderTicks) {
       
   538             if( !d->tickmarksLeft || !d->tickmarksRight) {
       
   539                 d->createSliderTicks( );
       
   540                 d->positionTickMarks( );
       
   541                 repolish( );
       
   542             } else {
       
   543                 d->tickmarksLeft->updateTicks( );
       
   544                 d->tickmarksRight->updateTicks( );
       
   545             }
       
   546             if ( (!d->tickmarkslabelRight || !d->tickmarkslabelLeft) && (!d->majorLabel.isEmpty( ) ||
       
   547                 (d->minorTickInterval >0  &&! d->minorLabel.isEmpty( )))) {
       
   548                     d->createSliderTickLabels( );
       
   549                     d->positionTickMarksLabel( );
       
   550                     repolish( );
       
   551             }
       
   552 
       
   553             if ( d->snappingMode == MajorTickSnapping ) {
       
   554             updateSliderPosToTick( );
       
   555             }
       
   556         }
       
   557     }
   379     }
   558 }
   380 }
   559 
   381 
   560 /*!
   382 /*!
   561     Returns the minor ticklabels of the slider.
   383     Returns the minor ticklabels of the slider.
   580 void HbSliderControl::setMinorTickInterval( int interval )
   402 void HbSliderControl::setMinorTickInterval( int interval )
   581 {
   403 {
   582     Q_D( HbSliderControl );
   404     Q_D( HbSliderControl );
   583     if ( d->minorTickInterval != interval ) {
   405     if ( d->minorTickInterval != interval ) {
   584         d->minorTickInterval = qAbs ( interval );
   406         d->minorTickInterval = qAbs ( interval );
   585         if ( d->tickmarksLeft && d->tickmarksRight ) {
       
   586             d->tickmarksLeft->updateTicks( );
       
   587             d->tickmarksRight->updateTicks( );
       
   588         }
       
   589         if ( d->majorTickInterval > 0 && ( !d->minorLabel.isEmpty() && d->minorTickInterval > 0) &&
       
   590             (!d->tickmarkslabelLeft || !d->tickmarkslabelRight) && d->tickPosition!=Hb::NoSliderTicks) {
       
   591                 d->createSliderTickLabels( );
       
   592                 repolish( );
       
   593         }
       
   594         if ( d->snappingMode == MinorTickSnapping && d->minorTickInterval > 0 && d->tickPosition!= Hb::NoSliderTicks ) {
   407         if ( d->snappingMode == MinorTickSnapping && d->minorTickInterval > 0 && d->tickPosition!= Hb::NoSliderTicks ) {
   595             updateSliderPosToTick( );
   408             updateSliderPosToTick( );
   596         }
   409         }
   597     }
   410     }
   598 }
   411 }
   636 */
   449 */
   637 void HbSliderControl::setMajorTickLabels( const QStringList &majorTickLabels )
   450 void HbSliderControl::setMajorTickLabels( const QStringList &majorTickLabels )
   638 {
   451 {
   639     Q_D( HbSliderControl );
   452     Q_D( HbSliderControl );
   640     d->majorLabel = majorTickLabels;
   453     d->majorLabel = majorTickLabels;
   641     if (d->majorLabel.isEmpty( ) && (d->minorLabel.isEmpty( )|| d->minorTickInterval <=0) ) {
   454 
   642         if (d->tickmarkslabelLeft) {
       
   643             delete d->tickmarkslabelLeft;
       
   644             d->tickmarkslabelLeft =0;
       
   645         }
       
   646         if( d->tickmarkslabelRight) {
       
   647             delete d->tickmarkslabelRight;
       
   648             d->tickmarkslabelRight =0;
       
   649         }
       
   650         repolish( );
       
   651 
       
   652     } else {
       
   653         if ((!d->tickmarkslabelLeft || !d->tickmarkslabelRight) && !d->majorLabel.isEmpty( ) &&
       
   654             d->majorTickInterval > 0 && d->tickPosition!=Hb::NoSliderTicks) {
       
   655                 d->createSliderTickLabels( );
       
   656                 d->positionTickMarksLabel( );
       
   657                 repolish( );
       
   658             }  else if ( d->tickmarkslabelLeft && d->tickmarkslabelRight ) {
       
   659                 d->tickmarkslabelLeft->updateTickLabels( );
       
   660                 d->tickmarkslabelRight->updateTickLabels( );
       
   661             }
       
   662     }
       
   663 }
   455 }
   664 
   456 
   665 /*!
   457 /*!
   666     Returns the minor ticklabels of the slider.
   458     Returns the minor ticklabels of the slider.
   667   
   459   
   682 */
   474 */
   683 void HbSliderControl::setMinorTickLabels( const QStringList &minorTickLabels )
   475 void HbSliderControl::setMinorTickLabels( const QStringList &minorTickLabels )
   684 {
   476 {
   685     Q_D( HbSliderControl );
   477     Q_D( HbSliderControl );
   686     d->minorLabel = minorTickLabels;
   478     d->minorLabel = minorTickLabels;
   687     if (d->majorLabel.isEmpty( ) && (d->minorLabel.isEmpty( )|| d->minorTickInterval <=0) ) {
       
   688         if (d->tickmarkslabelLeft) {
       
   689             delete d->tickmarkslabelLeft;
       
   690         }
       
   691         if( d->tickmarkslabelRight) {
       
   692             delete d->tickmarkslabelRight;
       
   693         }
       
   694         repolish( );
       
   695 
       
   696     } else {
       
   697         if ((!d->tickmarkslabelLeft || !d->tickmarkslabelRight) &&
       
   698             d->majorTickInterval > 0 && d->tickPosition!=Hb::NoSliderTicks) {
       
   699                 d->createSliderTickLabels( );
       
   700                 repolish( );
       
   701             }  else if ( d->tickmarkslabelLeft && d->tickmarkslabelRight)  {
       
   702                 d->tickmarkslabelLeft->updateTickLabels( );
       
   703                 d->tickmarkslabelRight->updateTickLabels( );
       
   704             }
       
   705     }
       
   706 }
   479 }
   707 
   480 
   708 
   481 
   709 /*!
   482 /*!
   710     Returns the SnappingMode of the slider.
   483     Returns the SnappingMode of the slider.
   784 {
   557 {
   785     Q_D( HbSliderControl );
   558     Q_D( HbSliderControl );
   786     switch ( event->type( ) ) {
   559     switch ( event->type( ) ) {
   787         case QEvent::LayoutDirectionChange:
   560         case QEvent::LayoutDirectionChange:
   788             d->adjustHandle( );
   561             d->adjustHandle( );
   789             d->updateTickAndLabel( );
       
   790             break;
   562             break;
   791         case QEvent::StyleChange:
   563         case QEvent::StyleChange:
   792             // HbSlider::boundingRect( ) result depends on current style
   564             // HbSlider::boundingRect( ) result depends on current style
   793             d->handle->prepareGeometryChange( );
   565             d->handle->prepareGeometryChange( );
   794             d->adjustHandle( );
   566             d->adjustHandle( );
  1074             // if default is set then dont increment or decrement slider value
   846             // if default is set then dont increment or decrement slider value
  1075             // just set default value to slider
   847             // just set default value to slider
  1076             setSliderPosition( pressValue );
   848             setSliderPosition( pressValue );
  1077             triggerAction( SliderMove );
   849             triggerAction( SliderMove );
  1078             setRepeatAction( SliderNoAction, pressValue );
   850             setRepeatAction( SliderNoAction, pressValue );
  1079             }
   851             HbWidgetFeedback::triggered( this, Hb::InstantReleased );
       
   852             if ( d->groovePressed ) {
       
   853 #ifdef HB_EFFECTS    
       
   854                 if( orientation( ) == Qt::Horizontal ) {   
       
   855                     HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackrelease", "h_trackrelease" );
       
   856                     HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "h_trackrelease" );
       
   857                 }  else {
       
   858                     HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_v_trackrelease", "v_trackrelease" );
       
   859                     HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "v_trackrelease" );
       
   860                 }    
       
   861 #endif
       
   862                 HbStyleOptionSlider opt;
       
   863                 d->groovePressed = false;
       
   864                 initStyleOption( &opt );    
       
   865                 // update primitive from press to normal
       
   866                 style( )->updatePrimitive( d->groove, HbStyle::P_Slider_groove, &opt );
       
   867             }
       
   868          }
       
   869          break;
       
   870 
  1080         case Qt::GestureCanceled: {
   871         case Qt::GestureCanceled: {
  1081             if ( d->groovePressed ) {
   872             if ( d->groovePressed ) {
  1082 #ifdef HB_EFFECTS    
   873 #ifdef HB_EFFECTS    
  1083                 if( orientation( ) == Qt::Horizontal ) {   
   874                 if( orientation( ) == Qt::Horizontal ) {   
  1084                     HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackrelease", "h_trackrelease" );
   875                     HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackrelease", "h_trackrelease" );
  1093                 initStyleOption( &opt );    
   884                 initStyleOption( &opt );    
  1094                 // update primitive from press to normal
   885                 // update primitive from press to normal
  1095                 style( )->updatePrimitive( d->groove, HbStyle::P_Slider_groove, &opt );
   886                 style( )->updatePrimitive( d->groove, HbStyle::P_Slider_groove, &opt );
  1096             }
   887             }
  1097         }
   888         }
       
   889         break;
       
   890 
  1098         default:
   891         default:
  1099             break;
   892             break;
  1100         }
   893         }
  1101     }
   894     }
  1102     if (HbPanGesture *panGesture = qobject_cast<HbPanGesture*>(event->gesture(Qt::PanGesture))) {
   895     if (HbPanGesture *panGesture = qobject_cast<HbPanGesture*>(event->gesture(Qt::PanGesture))) {
  1143                     initStyleOption( &opt );
   936                     initStyleOption( &opt );
  1144                     style( )->updatePrimitive( d->groove, HbStyle::P_Slider_groove, &opt );  
   937                     style( )->updatePrimitive( d->groove, HbStyle::P_Slider_groove, &opt );  
  1145                     HbWidgetFeedback::triggered( this, Hb::InstantPressed );
   938                     HbWidgetFeedback::triggered( this, Hb::InstantPressed );
  1146                     event->ignore();
   939                     event->ignore();
  1147                     break;
   940                     break;
  1148                 } 
   941                 } else {
  1149             }
   942                     setSliderDown( false );
       
   943                     d->groovePressed = false;
       
   944                     updatePrimitives( );
       
   945                     d->handle->updatePrimitives();
       
   946                     d->handleMoving = false;
       
   947                     event->ignore();
       
   948                     HbAbstractSliderControl::gestureEvent(event);
       
   949                 }
       
   950 
       
   951             }
       
   952             break;
  1150             case Qt::GestureFinished:
   953             case Qt::GestureFinished:
  1151             case Qt::GestureCanceled: {
   954             case Qt::GestureCanceled: {
  1152                 setSliderDown( false );
   955                 setSliderDown( false );
  1153                 d->groovePressed = false;
   956                 d->groovePressed = false;
  1154                 updatePrimitives( );
   957                 updatePrimitives( );
  1155                 d->handle->updatePrimitives();
   958                 d->handle->updatePrimitives();
  1156                 d->handleMoving = false;
   959                 d->handleMoving = false;
  1157                 event->ignore();
   960                 event->ignore();
  1158                 HbAbstractSliderControl::gestureEvent(event);
   961                 HbAbstractSliderControl::gestureEvent(event);
  1159             }
   962             }
       
   963             break;
  1160             default:
   964             default:
  1161                 break;
   965                 break;
  1162         }
   966         }
  1163     }
   967     }
  1164 
   968 
  1206     // for Bug Fix::Ticks are not getting updated after 
  1010     // for Bug Fix::Ticks are not getting updated after 
  1207     // element is added to slider
  1011     // element is added to slider
  1208     updatePrimitives( );
  1012     updatePrimitives( );
  1209     repolish();
  1013     repolish();
  1210     d->adjustHandle( );  
  1014     d->adjustHandle( );  
  1211     d->updateTickAndLabel( );
       
  1212 }
  1015 }
  1213 /*!
  1016 /*!
  1214   reimp
  1017   reimp
  1215 
  1018 
  1216 */
  1019 */
  1217 void HbSliderControl::polish( HbStyleParameters& params )
  1020 void HbSliderControl::polish( HbStyleParameters& params )
  1218 {
  1021 {
  1219 
       
  1220     Q_D( HbSliderControl );
  1022     Q_D( HbSliderControl );
  1221     HbStyleOptionSlider option;
  1023     HbStyleOptionSlider option;
  1222     initStyleOption( &option );
  1024     initStyleOption( &option );
  1223     HbAbstractSliderControl::polish( params );
  1025     HbAbstractSliderControl::polish( params );
  1224     d->adjustHandle( );
  1026     d->adjustHandle( );
  1225     d->updateTickAndLabel();
       
  1226     updatePrimitives( );
  1027     updatePrimitives( );
  1227 
       
  1228 
       
  1229 }
  1028 }
  1230 
  1029 
  1231 /*!
  1030 /*!
  1232  
  1031  
  1233 */
  1032 */
  1329 	} else {
  1128 	} else {
  1330 		d->handle->setVisible(false);
  1129 		d->handle->setVisible(false);
  1331 	}
  1130 	}
  1332 }
  1131 }
  1333 
  1132 
  1334 bool HbSliderControl::handleVisible() const
  1133 bool HbSliderControl::handleVisible( ) const
  1335 {
  1134 {
  1336     Q_D( const HbSliderControl );
  1135     Q_D( const HbSliderControl );
  1337 	return d->handle->isVisible();
  1136 	return d->handle->isVisible();
  1338 }
  1137 }
  1339  
  1138  
  1345     Q_D( HbSliderControl );
  1144     Q_D( HbSliderControl );
  1346     HbAbstractSliderControl::sliderChange( change );
  1145     HbAbstractSliderControl::sliderChange( change );
  1347     d->adjustHandle( );
  1146     d->adjustHandle( );
  1348     if ( change == SliderOrientationChange ) {
  1147     if ( change == SliderOrientationChange ) {
  1349         //Layout is not mirrored in vertical orientation with absolute ticks
  1148         //Layout is not mirrored in vertical orientation with absolute ticks
  1350         if ( d->orientation == Qt::Horizontal ) {
       
  1351         } else if ( d->tickPosition&Hb::SliderTicksAbsolute) {
       
  1352             setLayoutDirection (Qt::LeftToRight);
       
  1353         }
       
  1354         if(d->orientation ==Qt::Horizontal) { 
  1149         if(d->orientation ==Qt::Horizontal) { 
  1355             unsetLayoutDirection( );
       
  1356             if (!d->userDefinedTooltipAlign) {
  1150             if (!d->userDefinedTooltipAlign) {
  1357                 d->toolTipAlignment = ( Qt::AlignTop|Qt::AlignHCenter );
  1151                 d->toolTipAlignment = ( Qt::AlignTop|Qt::AlignHCenter );
  1358             }
  1152             }
  1359             setProperty("orientation",(Qt::Orientation)1);
       
  1360             if ( d->tickmarksLeft && d->tickmarksRight) {
       
  1361                 HbStyle::setItemName( d->tickmarksLeft, "tick-marksabove" );
       
  1362                 HbStyle::setItemName( d->tickmarksRight, "tick-marksbelow" );
       
  1363             }
       
  1364             if ( d->tickmarkslabelLeft && d->tickmarkslabelRight ) {
       
  1365                 HbStyle::setItemName( d->tickmarkslabelLeft, "tick-textsabove" );
       
  1366                 HbStyle::setItemName( d->tickmarkslabelRight, "tick-textsbelow" );
       
  1367             }
       
  1368 
       
  1369         } else {
  1153         } else {
  1370             setProperty("orientation",(Qt::Orientation)2);
       
  1371             if ( d->tickPosition & Hb::SliderTicksAbsolute) {
       
  1372                 setLayoutDirection (Qt::LeftToRight);
       
  1373             }
       
  1374             if (!d->userDefinedTooltipAlign) {
  1154             if (!d->userDefinedTooltipAlign) {
  1375                 d->toolTipAlignment = ( Qt::AlignTop|Qt::AlignRight );
  1155                 d->toolTipAlignment = ( Qt::AlignTop|Qt::AlignRight );
  1376             }
  1156             }
  1377             if ( d->tickmarksLeft && d->tickmarksRight) {
       
  1378                 HbStyle::setItemName( d->tickmarksLeft, "tick-marksleft" );
       
  1379                 HbStyle::setItemName( d->tickmarksRight, "tick-marksright" );
       
  1380                 if ( d->tickPosition & Hb::SliderTicksAbsolute ) {
       
  1381                     setLayoutDirection (Qt::LeftToRight );
       
  1382                     }
       
  1383             }
       
  1384             if ( d->tickmarkslabelLeft && d->tickmarkslabelRight ) {
       
  1385                 HbStyle::setItemName( d->tickmarkslabelLeft, "tick-textsleft" );
       
  1386                 HbStyle::setItemName( d->tickmarkslabelRight, "tick-textsright" );
       
  1387             }
       
  1388 
       
  1389         }
  1157         }
  1390         repolish( );
  1158         repolish( );
  1391         if ( d->tickmarkslabelLeft && d->tickmarkslabelRight ) {
       
  1392             d->tickmarkslabelLeft->updateTickLabels( );
       
  1393             d->tickmarkslabelRight->updateTickLabels( );
       
  1394         }
       
  1395 
       
  1396     }
  1159     }
  1397 }
  1160 }
  1398 
  1161 
  1399 
  1162 
  1400 /*!
  1163 /*!
  1567 {
  1330 {
  1568     Q_D( HbSliderControl );
  1331     Q_D( HbSliderControl );
  1569     return d->trackHandlingEnable ;
  1332     return d->trackHandlingEnable ;
  1570 }
  1333 }
  1571 
  1334 
       
  1335 /*!
       
  1336  Gets the size of the handle
       
  1337  */
       
  1338 
       
  1339 QSizeF HbSliderControl::getHandleSize ( ) 
       
  1340 {
       
  1341     Q_D( HbSliderControl );
       
  1342     return d->handle->size( ) ;
       
  1343 }
       
  1344 
       
  1345 
  1572 void HbSliderControl::setTrackFilled(bool trackVisible )
  1346 void HbSliderControl::setTrackFilled(bool trackVisible )
  1573 {
  1347 {
  1574     
  1348     
  1575     Q_D( HbSliderControl );
  1349     Q_D( HbSliderControl );
  1576     if ( d->enableProgressTrack != trackVisible ) {
  1350     if ( d->enableProgressTrack != trackVisible ) {