43 { |
43 { |
44 mDownState=false; |
44 mDownState=false; |
45 handle = 0; |
45 handle = 0; |
46 mSliderValue = 0; |
46 mSliderValue = 0; |
47 mHandlePath.clear(); |
47 mHandlePath.clear(); |
|
48 mToolTipTextVisibleUser = false; |
48 } |
49 } |
49 |
50 |
50 HbProgressSliderPrivate::~HbProgressSliderPrivate() |
51 HbProgressSliderPrivate::~HbProgressSliderPrivate() |
51 { |
52 { |
52 if (handle) { |
53 if (handle) { |
53 delete handle; |
54 delete handle; |
54 } |
55 } |
55 } |
56 } |
56 |
57 bool HbProgressSliderPrivate::textVisible() const |
|
58 { |
|
59 return mToolTipTextVisibleUser; |
|
60 } |
57 void HbProgressSliderPrivate::setProgressValue(int value) |
61 void HbProgressSliderPrivate::setProgressValue(int value) |
58 { |
62 { |
59 Q_Q(HbProgressSlider); |
63 Q_Q(HbProgressSlider); |
60 if (mProgressValue == value) { |
64 if (mProgressValue == value) { |
61 return; |
65 return; |
74 |
78 |
75 //redraw track |
79 //redraw track |
76 HbStyleOptionProgressSlider sliderOption; |
80 HbStyleOptionProgressSlider sliderOption; |
77 q->initStyleOption(&sliderOption); |
81 q->initStyleOption(&sliderOption); |
78 if(mTrack) { |
82 if(mTrack) { |
79 q->style()->updatePrimitive(mTrack, HbStyle::P_ProgressSlider_track, &sliderOption); |
83 HbStylePrivate::updatePrimitive(mTrack, HbStylePrivate::P_ProgressSlider_track, &sliderOption); |
80 } |
84 } |
81 |
85 |
82 emit q->valueChanged(value); |
86 emit q->valueChanged(value); |
83 } |
87 } |
84 |
88 |
85 void HbProgressSliderPrivate::setEnableFlag(bool flag) |
89 void HbProgressSliderPrivate::setEnableFlag(bool flag) |
86 { |
90 { |
87 Q_Q(HbProgressSlider); |
91 Q_Q(HbProgressSlider); |
88 Q_UNUSED(flag); |
92 Q_UNUSED(flag); |
89 HbStyleOptionProgressSlider option; |
93 HbStyleOptionProgressSlider option; |
90 q->initStyleOption(&option); |
94 q->initStyleOption(&option); |
91 q->updatePrimitives(); |
95 q->updatePrimitives(); |
92 } |
96 } |
93 |
97 |
94 void HbProgressSliderPrivate::init() |
98 void HbProgressSliderPrivate::init() |
95 { |
99 { |
96 Q_Q(HbProgressSlider); |
100 Q_Q(HbProgressSlider); |
97 |
101 |
98 mSliderGraphicItem = q->style()->createPrimitive(HbStyle::P_ProgressSlider_slidertrack,mFrame); |
102 mSliderGraphicItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressSlider_slidertrack,mFrame); |
99 // Show the touch area which is created in ProgressBar// |
103 // Show the touch area which is created in ProgressBar// |
100 mTouchAreaItem = q->style()->createPrimitive(HbStyle::P_ProgressSlider_toucharea,q); |
104 mTouchAreaItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressSlider_toucharea,q); |
101 mFrame->setZValue(mTouchAreaItem->zValue()+1); |
105 mFrame->setZValue(mTouchAreaItem->zValue()+1); |
102 |
106 |
103 #ifdef HB_EFFECTS |
107 #ifdef HB_EFFECTS |
104 HbEffectInternal::add(HB_PRGRESSSLIDER_ITEM_TYPE,"progressslider_trackpress", "progressslider_trackpress"); |
108 HbEffectInternal::add(HB_PRGRESSSLIDER_ITEM_TYPE,"progressslider_trackpress", "progressslider_trackpress"); |
105 HbEffectInternal::add(HB_PRGRESSSLIDER_ITEM_TYPE,"progressslider_trackrelease", "progressslider_trackrelease"); |
109 HbEffectInternal::add(HB_PRGRESSSLIDER_ITEM_TYPE,"progressslider_trackrelease", "progressslider_trackrelease"); |
212 |
216 |
213 HbStyleOptionProgressSlider progressSliderOption; |
217 HbStyleOptionProgressSlider progressSliderOption; |
214 q->initStyleOption(&progressSliderOption); |
218 q->initStyleOption(&progressSliderOption); |
215 |
219 |
216 if (mSliderGraphicItem) { |
220 if (mSliderGraphicItem) { |
217 q->style()->updatePrimitive(mSliderGraphicItem, HbStyle::P_ProgressSlider_slidertrack, &progressSliderOption); |
221 HbStylePrivate::updatePrimitive(mSliderGraphicItem, HbStylePrivate::P_ProgressSlider_slidertrack, &progressSliderOption); |
218 } |
222 } |
219 |
223 |
220 if (mTrack) { |
224 if (mTrack) { |
221 q->style()->updatePrimitive(mTrack, HbStyle::P_ProgressSlider_track, &progressSliderOption); |
225 HbStylePrivate::updatePrimitive(mTrack, HbStylePrivate::P_ProgressSlider_track, &progressSliderOption); |
222 } |
226 } |
223 |
227 |
224 q->setSliderValue(mSliderValue); |
228 q->setSliderValue(mSliderValue); |
225 } |
229 } |
226 |
230 |
227 /*! |
231 /*! |
228 @beta |
232 @beta |
229 @hbwidgets |
233 @hbwidgets |
375 |
379 |
376 HbStyleOptionProgressSlider option; |
380 HbStyleOptionProgressSlider option; |
377 initStyleOption(&option); |
381 initStyleOption(&option); |
378 |
382 |
379 if (d->mSliderGraphicItem) { |
383 if (d->mSliderGraphicItem) { |
380 style()->updatePrimitive(d->mSliderGraphicItem, HbStyle::P_ProgressSlider_slidertrack, &option); |
384 HbStylePrivate::updatePrimitive(d->mSliderGraphicItem, HbStylePrivate::P_ProgressSlider_slidertrack, &option); |
381 } |
385 } |
382 d->handle->setHandlePosForValue(sliderValue()); |
386 d->handle->setHandlePosForValue(sliderValue()); |
383 } |
387 } |
384 |
388 |
385 /*! |
389 /*! |
445 if(flags().testFlag(ItemIsFocusable)) { |
449 if(flags().testFlag(ItemIsFocusable)) { |
446 d->mDownState = true; |
450 d->mDownState = true; |
447 HbStyleOptionProgressSlider option; |
451 HbStyleOptionProgressSlider option; |
448 initStyleOption(&option); |
452 initStyleOption(&option); |
449 if (d->mFrame) { |
453 if (d->mFrame) { |
450 style()->updatePrimitive(d->mFrame, HbStyle::P_ProgressSlider_frame, &option); |
454 HbStylePrivate::updatePrimitive(d->mFrame, HbStylePrivate::P_ProgressSlider_frame, &option); |
451 } |
455 } |
452 |
456 |
453 HbWidgetFeedback::triggered(this, Hb::InstantPressed); |
457 HbWidgetFeedback::triggered(this, Hb::InstantPressed); |
454 d->handle->handleTrackPress(event); |
458 d->handle->handleTrackPress(event); |
|
459 emit trackPressed(); |
455 event->accept(); |
460 event->accept(); |
456 #ifdef HB_EFFECTS |
461 #ifdef HB_EFFECTS |
457 HbEffect::start(this, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackpress"); |
462 HbEffect::start(this, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackpress"); |
458 #endif |
463 #endif |
459 } else { |
464 } else { |
472 d->mDownState = false; |
477 d->mDownState = false; |
473 |
478 |
474 HbStyleOptionProgressSlider option; |
479 HbStyleOptionProgressSlider option; |
475 initStyleOption(&option); |
480 initStyleOption(&option); |
476 if (d->mFrame) { |
481 if (d->mFrame) { |
477 style()->updatePrimitive(d->mFrame, HbStyle::P_ProgressSlider_frame, &option); |
482 HbStylePrivate::updatePrimitive(d->mFrame, HbStylePrivate::P_ProgressSlider_frame, &option); |
478 } |
483 } |
479 |
484 |
480 HbWidgetFeedback::triggered(this, Hb::InstantReleased); |
485 HbWidgetFeedback::triggered(this, Hb::InstantReleased); |
481 d->handle->handleTrackRelease(event); |
486 d->handle->handleTrackRelease(event); |
|
487 emit trackReleased(); |
482 event->accept(); |
488 event->accept(); |
483 #ifdef HB_EFFECTS |
489 #ifdef HB_EFFECTS |
484 HbEffect::start(this, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackrelease"); |
490 HbEffect::start(this, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackrelease"); |
485 #endif |
491 #endif |
486 } else { |
492 } else { |
528 |
534 |
529 HbStyleOptionProgressSlider option; |
535 HbStyleOptionProgressSlider option; |
530 initStyleOption(&option); |
536 initStyleOption(&option); |
531 |
537 |
532 if (d->mSliderGraphicItem) { |
538 if (d->mSliderGraphicItem) { |
533 style()->updatePrimitive(d->mSliderGraphicItem, HbStyle::P_ProgressSlider_slidertrack, &option); |
539 HbStylePrivate::updatePrimitive(d->mSliderGraphicItem, HbStylePrivate::P_ProgressSlider_slidertrack, &option); |
534 } |
540 } |
535 |
541 |
536 if(d->handle) |
542 if(d->handle) |
537 d->handle->setHandlePosForValue(sliderValue()); |
543 d->handle->setHandlePosForValue(sliderValue()); |
538 |
544 |
539 if (d->mFrame) { |
545 if (d->mFrame) { |
540 style()->updatePrimitive(d->mFrame, HbStyle::P_ProgressSlider_frame, &option); |
546 HbStylePrivate::updatePrimitive(d->mFrame, HbStylePrivate::P_ProgressSlider_frame, &option); |
541 } |
547 } |
542 |
548 |
543 if (d->mTrack) { |
549 if (d->mTrack) { |
544 style()->updatePrimitive(d->mTrack, HbStyle::P_ProgressSlider_track, &option); |
550 HbStylePrivate::updatePrimitive(d->mTrack, HbStylePrivate::P_ProgressSlider_track, &option); |
545 } |
551 } |
546 |
552 |
547 if(d->mMinTextItem && d->mMinMaxTextVisible) { |
553 if(d->mMinTextItem && d->mMinMaxTextVisible) { |
548 style()->updatePrimitive(d->mMinTextItem,HbStyle::P_ProgressBar_mintext,&option); |
554 HbStylePrivate::updatePrimitive(d->mMinTextItem,HbStylePrivate::P_ProgressBar_mintext,&option); |
549 } |
555 } |
550 |
556 |
551 if(d->mMaxTextItem && d->mMinMaxTextVisible) { |
557 if(d->mMaxTextItem && d->mMinMaxTextVisible) { |
552 style()->updatePrimitive(d->mMaxTextItem,HbStyle::P_ProgressBar_maxtext,&option); |
558 HbStylePrivate::updatePrimitive(d->mMaxTextItem,HbStylePrivate::P_ProgressBar_maxtext,&option); |
553 } |
559 } |
554 } |
560 } |
555 } |
561 } |
556 /*! |
562 /*! |
557 \reimp |
563 \reimp |
587 return HbProgressBar::itemChange(change, value); |
593 return HbProgressBar::itemChange(change, value); |
588 } |
594 } |
589 /*! |
595 /*! |
590 \reimp |
596 \reimp |
591 */ |
597 */ |
|
598 void HbProgressSlider::mouseMoveEvent(QGraphicsSceneMouseEvent *event) |
|
599 { |
|
600 Q_D(HbProgressSlider); |
|
601 QRectF rect = d->mTouchAreaItem->sceneBoundingRect( ); |
|
602 // return if point is outside track touch area |
|
603 if ( !rect.contains( event->scenePos( ) ) ) { |
|
604 event->ignore( ); |
|
605 return; |
|
606 } |
|
607 |
|
608 if(flags().testFlag(ItemIsFocusable)) { |
|
609 d->handle->handleTrackPress(event); |
|
610 event->accept(); |
|
611 } else { |
|
612 event->ignore(); |
|
613 } |
|
614 |
|
615 } |
|
616 /*! |
|
617 \reimp |
|
618 */ |
592 bool HbProgressSlider::sceneEventFilter(QGraphicsItem *obj,QEvent *event) |
619 bool HbProgressSlider::sceneEventFilter(QGraphicsItem *obj,QEvent *event) |
593 { |
620 { |
594 Q_D(HbProgressSlider); |
621 Q_D(HbProgressSlider); |
595 if( obj == d->mTouchAreaItem) { |
622 if( obj == d->mTouchAreaItem) { |
596 if (!isEnabled() ) { |
623 if (!isEnabled() ) { |
602 } |
629 } |
603 else if (event->type() == QEvent::GraphicsSceneMouseRelease){ |
630 else if (event->type() == QEvent::GraphicsSceneMouseRelease){ |
604 mouseReleaseEvent((QGraphicsSceneMouseEvent *) event); |
631 mouseReleaseEvent((QGraphicsSceneMouseEvent *) event); |
605 return true; |
632 return true; |
606 } |
633 } |
|
634 |
|
635 else if (event->type() == QEvent::GraphicsSceneMouseMove){ |
|
636 mouseMoveEvent((QGraphicsSceneMouseEvent *) event); |
|
637 return true; |
|
638 } |
607 } |
639 } |
608 return false; |
640 return false; |
609 } |
641 } |
610 |
642 |
611 |
643 |
612 /*! |
644 /*! |
613 @beta |
645 @beta |
614 Sets the tooltip for the Slider handle. By default it shows the slider value. |
646 Sets the tooltip for the Slider handle. By default it shows the slider value. |
615 The application can customize the tooltip text using this API. |
647 The application can customize the tooltip text using this API. setting NULL string |
|
648 will disable the tooltip. |
616 |
649 |
617 \param text tooltip text |
650 \param text tooltip text |
618 |
651 |
619 \sa sliderToolTip() |
652 \sa sliderToolTip() |
620 */ |
653 */ |
621 void HbProgressSlider::setSliderToolTip(const QString &text) |
654 void HbProgressSlider::setSliderToolTip(const QString &text) |
622 { |
655 { |
623 Q_D(HbProgressSlider); |
656 Q_D(HbProgressSlider); |
624 d->mTooltipText = text; |
657 d->mTooltipText = text; |
|
658 d->mToolTipTextVisibleUser = true; |
625 } |
659 } |
626 |
660 |
627 |
661 |
628 /*! |
662 /*! |
629 @beta |
663 @beta |
682 QGraphicsItem* HbProgressSlider::primitive(HbStyle::Primitive primitive) const |
716 QGraphicsItem* HbProgressSlider::primitive(HbStyle::Primitive primitive) const |
683 { |
717 { |
684 Q_D(const HbProgressSlider); |
718 Q_D(const HbProgressSlider); |
685 |
719 |
686 switch (primitive) { |
720 switch (primitive) { |
687 case HbStyle::P_ProgressSlider_frame: |
721 case HbStylePrivate::P_ProgressSlider_frame: |
688 return d->mFrame; |
722 return d->mFrame; |
689 case HbStyle::P_ProgressSlider_track: |
723 case HbStylePrivate::P_ProgressSlider_track: |
690 return d->mTrack; |
724 return d->mTrack; |
691 case HbStyle::P_ProgressSlider_slidertrack: |
725 case HbStylePrivate::P_ProgressSlider_slidertrack: |
692 return d->mSliderGraphicItem; |
726 return d->mSliderGraphicItem; |
693 case HbStyle::P_ProgressSlider_toucharea: |
727 case HbStylePrivate::P_ProgressSlider_toucharea: |
694 return d->mTouchAreaItem; |
728 return d->mTouchAreaItem; |
695 case HbStyle::P_ProgressSliderHandle_icon: |
729 case HbStylePrivate::P_ProgressSliderHandle_icon: |
696 case HbStyle::P_ProgressSliderHandle_toucharea: |
730 case HbStylePrivate::P_ProgressSliderHandle_toucharea: |
697 return d->handle->primitive(primitive); |
731 return d->handle->primitive(primitive); |
698 default: |
732 default: |
699 return 0; |
733 return 0; |
700 } |
734 } |
701 } |
735 } |