src/hbcore/gui/hbscrollbar.cpp
changeset 21 4633027730f5
parent 6 c3690ec91ef8
child 28 b7da29130b0e
--- a/src/hbcore/gui/hbscrollbar.cpp	Tue Jul 06 14:36:53 2010 +0300
+++ b/src/hbcore/gui/hbscrollbar.cpp	Wed Aug 18 10:05:37 2010 +0300
@@ -100,6 +100,7 @@
         mTouchArea(0),
         mLimitingFactor(0.0),
         mTopLeft(0.0),
+        hasEffects(false),
         lastEmittedPos(QPointF()),
         emittedPos(false)
 {
@@ -112,8 +113,7 @@
 void HbScrollBarPrivate::init()
 {
     Q_Q(HbScrollBar);
-    q->grabGesture(Qt::PanGesture);
-    q->grabGesture(Qt::TapGesture);
+    q->setFlag(QGraphicsItem::ItemHasNoContents, true);
 }
 
 void HbScrollBarPrivate::createPrimitives()
@@ -121,18 +121,18 @@
     Q_Q(HbScrollBar);
 
     if ( !grooveItem ) {
-        grooveItem = q->style()->createPrimitive( HbStyle::P_ScrollBar_groove, q );
+        grooveItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_ScrollBar_groove, q );
         grooveItem->setZValue(2);
         HbStyle::setItemName( grooveItem, "groove" );
     }
 
     if ( !handleItem ) {
-        handleItem = q->style()->createPrimitive( HbStyle::P_ScrollBar_handle, q );
+        handleItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_ScrollBar_handle, q );
         handleItem->setZValue(3);
         HbStyle::setItemName( handleItem, "handle" );
     }
     if( !mTouchArea ) {
-        mTouchArea = q->style()->createPrimitive(HbStyle::P_ScrollBar_toucharea, q);
+        mTouchArea = HbStylePrivate::createPrimitive(HbStylePrivate::P_ScrollBar_toucharea, q);
     }
     q->updatePrimitives();
 }
@@ -317,6 +317,13 @@
     Q_D( HbScrollBar );
     if( d->mInteractive != enabled){
         d->mInteractive = enabled;
+        if ( enabled ) {
+            grabGesture(Qt::PanGesture);
+            grabGesture(Qt::TapGesture);
+        } else {
+            ungrabGesture(Qt::PanGesture);
+            ungrabGesture(Qt::TapGesture);
+        }
         if(d->handleItem) {
             repolish();
             updatePrimitives();
@@ -384,13 +391,13 @@
     HbStyleOptionScrollBar option;
     initStyleOption(&option);
     if (d->grooveItem) {
-        style()->updatePrimitive(d->grooveItem, HbStyle::P_ScrollBar_groove, &option);
+        HbStylePrivate::updatePrimitive(d->grooveItem, HbStylePrivate::P_ScrollBar_groove, &option);
     }
     if (d->handleItem) {
-        style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &option);
+        HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &option);
     }
     if( d->mTouchArea ) {
-        style()->updatePrimitive(d->mTouchArea, HbStyle::P_ScrollBar_toucharea, &option);
+        HbStylePrivate::updatePrimitive(d->mTouchArea, HbStylePrivate::P_ScrollBar_toucharea, &option);
     }
 }
 
@@ -448,7 +455,7 @@
         } else {
             HbWidgetFeedback::triggered(this, Hb::InstantPressed, Hb::ModifierSliderHandle);
             initStyleOption(&opt);
-            style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &opt );
+            HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &opt );
             emit d->core.handlePressed();
         }
 
@@ -474,7 +481,7 @@
         } else {
             HbWidgetFeedback::triggered(this, Hb::InstantPressed, Hb::ModifierSliderHandle);
             initStyleOption(&opt);
-            style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &opt );
+            HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &opt );
             emit d->core.handlePressed();
         }
 
@@ -501,13 +508,13 @@
         emit valueChanged(value(), orientation());
         emit d->core.handleReleased();
         initStyleOption(&opt);
-        style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &opt );
+        HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &opt );
     } else if (d->mGroovePressed){
         HbWidgetFeedback::triggered(this, Hb::InstantReleased);
         d->repeatActionTimer.stop();
         d->mGroovePressed = false;
         initStyleOption(&opt);
-        style()->updatePrimitive(d->grooveItem, HbStyle::P_ScrollBar_groove, &opt );
+        HbStylePrivate::updatePrimitive(d->grooveItem, HbStylePrivate::P_ScrollBar_groove, &opt );
     }
     d->emittedPos = false;
     event->accept();