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 |
|