src/hbwidgets/sliders/hbprogresssliderhandle_p.cpp
changeset 2 06ff229162e9
parent 1 f7ac710697a9
child 6 c3690ec91ef8
equal deleted inserted replaced
1:f7ac710697a9 2:06ff229162e9
    55  */
    55  */
    56 
    56 
    57 HbProgressSliderHandle::HbProgressSliderHandle(HbHandleParent *parent) 
    57 HbProgressSliderHandle::HbProgressSliderHandle(HbHandleParent *parent) 
    58     :HbWidget(parent->parentGraphicsItem()),
    58     :HbWidget(parent->parentGraphicsItem()),
    59     q(parent),
    59     q(parent),
    60     mHandleIcon(),
    60     mHandleIcon()
    61     mPlayThumb(true),
       
    62     mThumbEnabled(false)
       
    63 {
    61 {
    64     mFlags = 0;
    62     mFlags = 0;
    65     mFlags |= TextVisible;
    63     mFlags |= TextVisible;
    66     mHandleSize = QSizeF(0,0);
    64 
    67 
       
    68     mSliderHandleState = HbProgressSlider::SliderStatePlayNormal;
       
    69     HbStyle *style = static_cast<HbStyle*>(q->style());
    65     HbStyle *style = static_cast<HbStyle*>(q->style());
    70 
    66 
    71     mHandleIconItem = style->createPrimitive(HbStyle::P_ProgressSliderHandle_icon,this);
    67     mHandleIconItem = style->createPrimitive(HbStyle::P_ProgressSliderHandle_icon,this);
    72     HbStyle::setItemName(mHandleIconItem , "icon");
    68     HbStyle::setItemName(mHandleIconItem , "icon");
    73 
    69 
   106 
   102 
   107     HbStyleOptionProgressSliderHandle option;
   103     HbStyleOptionProgressSliderHandle option;
   108     initStyleOption(&option);
   104     initStyleOption(&option);
   109 
   105 
   110     style->updatePrimitive(mHandleIconItem, HbStyle::P_ProgressSliderHandle_icon, &option);
   106     style->updatePrimitive(mHandleIconItem, HbStyle::P_ProgressSliderHandle_icon, &option);
   111     mThumbEnabled = true;
   107 }
   112 }
   108 
   113 
       
   114 HbIcon HbProgressSliderHandle::thumbIcon() const
       
   115 {
       
   116     return mHandleIcon;    
       
   117 }
       
   118 
   109 
   119 void HbProgressSliderHandle::gestureEvent(QGestureEvent *event)
   110 void HbProgressSliderHandle::gestureEvent(QGestureEvent *event)
   120 {
   111 {
   121     Q_UNUSED(event);
   112     Q_UNUSED(event);
   122     // HbWidgetBase::gestureEvent() ignores, overriding to accept
   113     // HbWidgetBase::gestureEvent() ignores, overriding to accept
   130     HbEffect::start(this, HB_PRGRESSSLIDERHANDLE_ITEM_TYPE, "progressslider_handlepress");
   121     HbEffect::start(this, HB_PRGRESSSLIDERHANDLE_ITEM_TYPE, "progressslider_handlepress");
   131 #endif
   122 #endif
   132     mFlags |= HbProgressSliderHandle::MousePressed;
   123     mFlags |= HbProgressSliderHandle::MousePressed;
   133 
   124 
   134     HbStyleOptionProgressSliderHandle option;
   125     HbStyleOptionProgressSliderHandle option;
   135 	initStyleOption(&option);
   126     initStyleOption(&option);
   136     option.pressedState = true;
   127     option.pressedState = true;
   137     if (mHandleIconItem) {
   128     if (mHandleIconItem) {
   138         style()->updatePrimitive(mHandleIconItem, HbStyle::P_ProgressSliderHandle_icon, &option);
   129         style()->updatePrimitive(mHandleIconItem, HbStyle::P_ProgressSliderHandle_icon, &option);
   139     }
   130     }
   140 
   131 
   141     mMousePressPos = event->scenePos();
   132     mMousePressPos = event->scenePos();
   142     mItemPosAtPress = pos();
   133     mItemPosAtPress = pos();
   143     if(q->textVisible()) {
   134     if(q->textVisible()) {
   144         HbToolTip::showText(q->toolTipText(),this, QRectF(mItemPosAtPress,QSize(0,0)),q->textAlignment());
   135         HbToolTip::showText(q->toolTipText(),this, QRectF(mItemPosAtPress,QSize(0,0)),q->textAlignment());
   145     }
   136     }
   146 	else {
   137     else {
   147 		HbExtendedLocale locale;
   138         HbExtendedLocale locale;
   148 		HbToolTip::showText(locale.toString(q->progressValue()),this, QRectF(mItemCurPos,QSize(0,0)),q->textAlignment());
   139         HbToolTip::showText(locale.toString(q->progressValue()),this, QRectF(mItemCurPos,QSize(0,0)),q->textAlignment());
   149 	}
   140     }
   150 
   141 
   151     HbWidgetFeedback::triggered(q->parentGraphicsWidget(), Hb::InstantPressed, Hb::ModifierSliderHandle);
   142     HbWidgetFeedback::triggered(q->parentGraphicsWidget(), Hb::InstantPressed, Hb::ModifierSliderHandle);
   152 
   143 
   153     event->accept();
   144     event->accept();
   154     q->emitSliderPressed();    
   145     q->emitSliderPressed();    
   157 void HbProgressSliderHandle::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) 
   148 void HbProgressSliderHandle::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) 
   158 {
   149 {
   159     HbWidget::mouseReleaseEvent(event);
   150     HbWidget::mouseReleaseEvent(event);
   160 
   151 
   161     HbStyleOptionProgressSliderHandle option;
   152     HbStyleOptionProgressSliderHandle option;
   162 	initStyleOption(&option);
   153     initStyleOption(&option);
   163     option.pressedState = false;
   154     option.pressedState = false;
   164     if (mHandleIconItem) {
   155     if (mHandleIconItem) {
   165         style()->updatePrimitive(mHandleIconItem, HbStyle::P_ProgressSliderHandle_icon, &option);
   156         style()->updatePrimitive(mHandleIconItem, HbStyle::P_ProgressSliderHandle_icon, &option);
   166     }
   157     }
   167 
   158 
   174     HbEffect::start(this, HB_PRGRESSSLIDERHANDLE_ITEM_TYPE, "progressslider_handlerelease");
   165     HbEffect::start(this, HB_PRGRESSSLIDERHANDLE_ITEM_TYPE, "progressslider_handlerelease");
   175 #endif
   166 #endif
   176     mFlags &= ~HbProgressSliderHandle::MousePressed;
   167     mFlags &= ~HbProgressSliderHandle::MousePressed;
   177     mFlags &=~HandleMoving;
   168     mFlags &=~HandleMoving;
   178     event->accept();
   169     event->accept();
   179 	setHandlePosForValue(q->progressValue());   
   170     setHandlePosForValue(q->progressValue());   
   180     q->emitSliderReleased();
   171     q->emitSliderReleased();
   181 }
   172 }
   182 
   173 
   183 void HbProgressSliderHandle::handleTrackRelease(QGraphicsSceneMouseEvent * event)
   174 void HbProgressSliderHandle::handleTrackRelease(QGraphicsSceneMouseEvent * event)
   184 {
   175 {
   228 
   219 
   229     if(q->textVisible()) {
   220     if(q->textVisible()) {
   230         HbToolTip::showText(q->toolTipText(),this, QRectF(mItemCurPos,QSize(0,0)),q->textAlignment());
   221         HbToolTip::showText(q->toolTipText(),this, QRectF(mItemCurPos,QSize(0,0)),q->textAlignment());
   231     }
   222     }
   232     else {
   223     else {
   233 		HbExtendedLocale locale;
   224         HbExtendedLocale locale;
   234 		HbToolTip::showText(locale.toString(q->progressValue()),this, QRectF(mItemCurPos,QSize(0,0)),q->textAlignment());
   225         HbToolTip::showText(locale.toString(q->progressValue()),this, QRectF(mItemCurPos,QSize(0,0)),q->textAlignment());
   235 	}
   226     }
   236     event->accept();
   227     event->accept();
   237 
   228 
   238     q->emitSliderMoved(pointToValue(mItemCurPos));
   229     q->emitSliderMoved(pointToValue(mItemCurPos));
   239 }
   230 }
   240 
   231 
   416 void HbProgressSliderHandle::initStyleOption(HbStyleOptionProgressSliderHandle *option) const
   407 void HbProgressSliderHandle::initStyleOption(HbStyleOptionProgressSliderHandle *option) const
   417 {
   408 {
   418     HbWidget::initStyleOption(option);
   409     HbWidget::initStyleOption(option);
   419     option->handleIcon = mHandleIcon;
   410     option->handleIcon = mHandleIcon;
   420     option->pressedState = false;
   411     option->pressedState = false;
   421     option->sliderHandleState = (HbStyleOptionProgressSliderHandle::SliderState) mSliderHandleState;
   412 }
   422 }
   413 
   423