diff -r 923ff622b8b9 -r 4633027730f5 src/hbwidgets/sliders/hbprogressslider.cpp --- a/src/hbwidgets/sliders/hbprogressslider.cpp Tue Jul 06 14:36:53 2010 +0300 +++ b/src/hbwidgets/sliders/hbprogressslider.cpp Wed Aug 18 10:05:37 2010 +0300 @@ -45,6 +45,7 @@ handle = 0; mSliderValue = 0; mHandlePath.clear(); + mToolTipTextVisibleUser = false; } HbProgressSliderPrivate::~HbProgressSliderPrivate() @@ -53,7 +54,10 @@ delete handle; } } - +bool HbProgressSliderPrivate::textVisible() const +{ + return mToolTipTextVisibleUser; +} void HbProgressSliderPrivate::setProgressValue(int value) { Q_Q(HbProgressSlider); @@ -76,7 +80,7 @@ HbStyleOptionProgressSlider sliderOption; q->initStyleOption(&sliderOption); if(mTrack) { - q->style()->updatePrimitive(mTrack, HbStyle::P_ProgressSlider_track, &sliderOption); + HbStylePrivate::updatePrimitive(mTrack, HbStylePrivate::P_ProgressSlider_track, &sliderOption); } emit q->valueChanged(value); @@ -85,7 +89,7 @@ void HbProgressSliderPrivate::setEnableFlag(bool flag) { Q_Q(HbProgressSlider); - Q_UNUSED(flag); + Q_UNUSED(flag); HbStyleOptionProgressSlider option; q->initStyleOption(&option); q->updatePrimitives(); @@ -95,9 +99,9 @@ { Q_Q(HbProgressSlider); - mSliderGraphicItem = q->style()->createPrimitive(HbStyle::P_ProgressSlider_slidertrack,mFrame); + mSliderGraphicItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressSlider_slidertrack,mFrame); // Show the touch area which is created in ProgressBar// - mTouchAreaItem = q->style()->createPrimitive(HbStyle::P_ProgressSlider_toucharea,q); + mTouchAreaItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressSlider_toucharea,q); mFrame->setZValue(mTouchAreaItem->zValue()+1); #ifdef HB_EFFECTS @@ -195,7 +199,7 @@ void HbProgressSliderPrivate::setRange(int minimum, int maximum) { - Q_Q(HbProgressSlider); + Q_Q(HbProgressSlider); if( minimum > maximum ){ maximum = minimum ; } @@ -214,14 +218,14 @@ q->initStyleOption(&progressSliderOption); if (mSliderGraphicItem) { - q->style()->updatePrimitive(mSliderGraphicItem, HbStyle::P_ProgressSlider_slidertrack, &progressSliderOption); + HbStylePrivate::updatePrimitive(mSliderGraphicItem, HbStylePrivate::P_ProgressSlider_slidertrack, &progressSliderOption); } if (mTrack) { - q->style()->updatePrimitive(mTrack, HbStyle::P_ProgressSlider_track, &progressSliderOption); + HbStylePrivate::updatePrimitive(mTrack, HbStylePrivate::P_ProgressSlider_track, &progressSliderOption); } - q->setSliderValue(mSliderValue); + q->setSliderValue(mSliderValue); } /*! @@ -377,7 +381,7 @@ initStyleOption(&option); if (d->mSliderGraphicItem) { - style()->updatePrimitive(d->mSliderGraphicItem, HbStyle::P_ProgressSlider_slidertrack, &option); + HbStylePrivate::updatePrimitive(d->mSliderGraphicItem, HbStylePrivate::P_ProgressSlider_slidertrack, &option); } d->handle->setHandlePosForValue(sliderValue()); } @@ -447,11 +451,12 @@ HbStyleOptionProgressSlider option; initStyleOption(&option); if (d->mFrame) { - style()->updatePrimitive(d->mFrame, HbStyle::P_ProgressSlider_frame, &option); + HbStylePrivate::updatePrimitive(d->mFrame, HbStylePrivate::P_ProgressSlider_frame, &option); } HbWidgetFeedback::triggered(this, Hb::InstantPressed); d->handle->handleTrackPress(event); + emit trackPressed(); event->accept(); #ifdef HB_EFFECTS HbEffect::start(this, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackpress"); @@ -474,11 +479,12 @@ HbStyleOptionProgressSlider option; initStyleOption(&option); if (d->mFrame) { - style()->updatePrimitive(d->mFrame, HbStyle::P_ProgressSlider_frame, &option); + HbStylePrivate::updatePrimitive(d->mFrame, HbStylePrivate::P_ProgressSlider_frame, &option); } HbWidgetFeedback::triggered(this, Hb::InstantReleased); d->handle->handleTrackRelease(event); + emit trackReleased(); event->accept(); #ifdef HB_EFFECTS HbEffect::start(this, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackrelease"); @@ -530,26 +536,26 @@ initStyleOption(&option); if (d->mSliderGraphicItem) { - style()->updatePrimitive(d->mSliderGraphicItem, HbStyle::P_ProgressSlider_slidertrack, &option); + HbStylePrivate::updatePrimitive(d->mSliderGraphicItem, HbStylePrivate::P_ProgressSlider_slidertrack, &option); } if(d->handle) d->handle->setHandlePosForValue(sliderValue()); if (d->mFrame) { - style()->updatePrimitive(d->mFrame, HbStyle::P_ProgressSlider_frame, &option); + HbStylePrivate::updatePrimitive(d->mFrame, HbStylePrivate::P_ProgressSlider_frame, &option); } if (d->mTrack) { - style()->updatePrimitive(d->mTrack, HbStyle::P_ProgressSlider_track, &option); + HbStylePrivate::updatePrimitive(d->mTrack, HbStylePrivate::P_ProgressSlider_track, &option); } if(d->mMinTextItem && d->mMinMaxTextVisible) { - style()->updatePrimitive(d->mMinTextItem,HbStyle::P_ProgressBar_mintext,&option); + HbStylePrivate::updatePrimitive(d->mMinTextItem,HbStylePrivate::P_ProgressBar_mintext,&option); } if(d->mMaxTextItem && d->mMinMaxTextVisible) { - style()->updatePrimitive(d->mMaxTextItem,HbStyle::P_ProgressBar_maxtext,&option); + HbStylePrivate::updatePrimitive(d->mMaxTextItem,HbStylePrivate::P_ProgressBar_maxtext,&option); } } } @@ -589,6 +595,27 @@ /*! \reimp */ +void HbProgressSlider::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(HbProgressSlider); + QRectF rect = d->mTouchAreaItem->sceneBoundingRect( ); + // return if point is outside track touch area + if ( !rect.contains( event->scenePos( ) ) ) { + event->ignore( ); + return; + } + + if(flags().testFlag(ItemIsFocusable)) { + d->handle->handleTrackPress(event); + event->accept(); + } else { + event->ignore(); + } + +} +/*! + \reimp + */ bool HbProgressSlider::sceneEventFilter(QGraphicsItem *obj,QEvent *event) { Q_D(HbProgressSlider); @@ -604,6 +631,11 @@ mouseReleaseEvent((QGraphicsSceneMouseEvent *) event); return true; } + + else if (event->type() == QEvent::GraphicsSceneMouseMove){ + mouseMoveEvent((QGraphicsSceneMouseEvent *) event); + return true; + } } return false; } @@ -612,7 +644,8 @@ /*! @beta Sets the tooltip for the Slider handle. By default it shows the slider value. - The application can customize the tooltip text using this API. + The application can customize the tooltip text using this API. setting NULL string + will disable the tooltip. \param text tooltip text @@ -622,6 +655,7 @@ { Q_D(HbProgressSlider); d->mTooltipText = text; + d->mToolTipTextVisibleUser = true; } @@ -684,16 +718,16 @@ Q_D(const HbProgressSlider); switch (primitive) { - case HbStyle::P_ProgressSlider_frame: + case HbStylePrivate::P_ProgressSlider_frame: return d->mFrame; - case HbStyle::P_ProgressSlider_track: + case HbStylePrivate::P_ProgressSlider_track: return d->mTrack; - case HbStyle::P_ProgressSlider_slidertrack: + case HbStylePrivate::P_ProgressSlider_slidertrack: return d->mSliderGraphicItem; - case HbStyle::P_ProgressSlider_toucharea: + case HbStylePrivate::P_ProgressSlider_toucharea: return d->mTouchAreaItem; - case HbStyle::P_ProgressSliderHandle_icon: - case HbStyle::P_ProgressSliderHandle_toucharea: + case HbStylePrivate::P_ProgressSliderHandle_icon: + case HbStylePrivate::P_ProgressSliderHandle_toucharea: return d->handle->primitive(primitive); default: return 0;