--- a/src/hbwidgets/sliders/hbslider.cpp Thu Sep 02 20:44:51 2010 +0300
+++ b/src/hbwidgets/sliders/hbslider.cpp Fri Sep 17 08:32:10 2010 +0300
@@ -965,8 +965,6 @@
if ( d->elements.contains( HbSlider::TextElement )) {
d->elementWidget( HbSlider::TextElement );
}
- // sets text for tooltip also
- d->sliderControl->setToolTip( text );
}
}
@@ -1859,6 +1857,7 @@
*/
void HbSlider::mousePressEvent( QGraphicsSceneMouseEvent *event )
{
+#ifndef HB_GESTURE_FW
Q_D( HbSlider );
HbWidget::mousePressEvent( event );
if( d->elementItemMap.contains (HbSlider::IncreaseElement) ) {
@@ -1882,6 +1881,9 @@
return;
}
}
+#else
+ Q_UNUSED(event);
+#endif
}
@@ -1892,6 +1894,7 @@
*/
void HbSlider::mouseReleaseEvent( QGraphicsSceneMouseEvent *event )
{
+#ifndef HB_GESTURE_FW
Q_D( HbSlider );
HbWidget::mouseReleaseEvent( event );
if( d->elementItemMap.contains(HbSlider::IncreaseElement) ) {
@@ -1917,6 +1920,9 @@
}
}
d->stopRepeatAction( );
+#else
+ Q_UNUSED( event )
+#endif
}
/*!
@@ -1932,22 +1938,70 @@
if (HbTapGesture *tap = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture))) {
QPointF pos = event->mapToGraphicsScene(tap->position());
bool consumeEvent = false;
- if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) {
- if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) {
- if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) {
- consumeEvent = true;
+ switch( tap->state( ) ) {
+ case Qt::GestureStarted: {
+ if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) {
+ if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) {
+ if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) {
+ consumeEvent = true;
+ d->pressOnIncrement = true;
+ HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantPressed, Hb::ModifierSliderElement );
+ event->accept( );
+ // increment and start reapeat timer
+ d->startIncrementing( );
+ }
+ }
+ }
+ if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) {
+ if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) {
+ if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) {
+ consumeEvent = true;
+ d->pressOnIncrement = false;
+ HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantPressed, Hb::ModifierSliderElement );
+ event->accept( );
+ //decrement and start decrement timer
+ d->startDecrementing( );
+
+ }
}
}
}
- if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) {
- if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) {
- if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) {
- consumeEvent = true;
+ break;
+ case Qt::GestureCanceled:
+ case Qt::GestureFinished:
+ if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) {
+ if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) {
+ if ( d->pressOnIncrement ) {
+ if( d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) {
+ HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantReleased, Hb::ModifierSliderElement );
+ }
+ #ifdef HB_EFFECTS
+ HbEffectInternal::add( HB_SLIDER_TYPE,"slidericon_release", "increaserelease" );
+ HbEffect::start( d->elementItemMap[HbSlider::IncreaseElement].item, HB_SLIDER_TYPE, "increaserelease" );
+ #endif
+ }
}
}
- }
-
- if(!consumeEvent) {
+ if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) {
+ if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) {
+ if( d->elementItemMap.contains(HbSlider::DecreaseElement) ) {
+ if ( !d->pressOnIncrement ) {
+ if( d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos) ) {
+ HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantReleased, Hb::ModifierSliderElement );
+ }
+ #ifdef HB_EFFECTS
+ HbEffectInternal::add( HB_SLIDER_TYPE,"slidericon_release", "decreaserelease" );
+ HbEffect::start( d->elementItemMap[HbSlider::DecreaseElement].item, HB_SLIDER_TYPE, "decreaserelease" );
+ #endif
+ }
+ }
+ }
+ }
+ d->stopRepeatAction( );
+ break;
+ default: break;
+ }
+ if(!consumeEvent) {
event->ignore();
HbWidget::gestureEvent(event);
}