src/hbcore/primitives/hbslidertrackitem.cpp
changeset 28 b7da29130b0e
parent 7 923ff622b8b9
--- a/src/hbcore/primitives/hbslidertrackitem.cpp	Thu Sep 02 20:44:51 2010 +0300
+++ b/src/hbcore/primitives/hbslidertrackitem.cpp	Fri Sep 17 08:32:10 2010 +0300
@@ -37,6 +37,7 @@
     maskWidth = 0;
     trackSpan = 0;
     setMask   = true;
+    handleRect = QRectF();
 }
 
 HbSliderTrackItem::HbSliderTrackItem(HbFrameDrawer *drawer, QGraphicsItem *parent)
@@ -48,6 +49,7 @@
     maskWidth = 0;
     trackSpan = 0;
     setMask   = true;
+    handleRect = QRectF();
 }
 
 void HbSliderTrackItem::setMinimum(int min)
@@ -106,6 +108,11 @@
     }
 }
 
+void HbSliderTrackItem::setHandleRect( QRectF sliderHandleRect)
+{
+    handleRect=sliderHandleRect;
+}
+
 void HbSliderTrackItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
 {
     QSize size = boundingRect().size().toSize();
@@ -122,22 +129,22 @@
                         maskRect = QRectF(
                                        left,
                                        (qreal)boundingRect().topLeft().y(),
-                                       (qreal)boundingRect().width() * ((value -  minimum) / (qreal)(maximum - minimum)),
+                                       (qreal)boundingRect().width() * ((value -  minimum) / (qreal)(maximum - minimum))-handleRect.width()/2,
                                        (qreal)boundingRect().height());
                     } else {
                         maskRect = QRectF(
                                        left,
                                        (qreal)boundingRect().topLeft().y(),
-                                       (qreal)trackSpan * ((value -  minimum) / (qreal)(maximum - minimum)),
+                                       (qreal)trackSpan * ((value -  minimum) / (qreal)(maximum - minimum))+handleRect.width()/2,
                                        (qreal)boundingRect().height());
                     }
                 } else {
-                    qreal start = boundingRect().bottom() - (qreal)trackSpan * ((value -  minimum) / (qreal)(maximum - minimum));
+                    qreal start = boundingRect().bottom() - (qreal)trackSpan * ((value -  minimum) / (qreal)(maximum - minimum))-handleRect.height()/2;
                     qreal end = boundingRect().bottom();
 
                     if (inverted) {
                         start = boundingRect().top();
-                        end = start + (qreal)trackSpan * ((value -  minimum) / (qreal)(maximum - minimum));
+                        end = start + (qreal)trackSpan * ((value -  minimum) / (qreal)(maximum - minimum))+handleRect.height()/2;
                     }
                     maskRect = QRectF(
                                    (qreal)boundingRect().topLeft().x(),