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