src/hbcore/primitives/hbprogresstrackitem.cpp
branchGCC_SURGE
changeset 15 f378acbc9cfb
parent 7 923ff622b8b9
child 23 e6ad4ef83b23
--- a/src/hbcore/primitives/hbprogresstrackitem.cpp	Thu Jul 15 14:03:49 2010 +0100
+++ b/src/hbcore/primitives/hbprogresstrackitem.cpp	Thu Jul 22 16:36:53 2010 +0100
@@ -45,14 +45,17 @@
     maximum = 0;
     value = 0;
     maskWidth = 0;
+    mDiff = maximum - minimum;
 }
 void HbProgressTrackItem::setMinimum(int min)
 {
     minimum = min;
+    mDiff = maximum - minimum;
 }
 void HbProgressTrackItem::setMaximum(int max )
 {
     maximum = max;
+    mDiff = maximum - minimum;
 }
 void HbProgressTrackItem::setValue(int val )
 {
@@ -79,30 +82,30 @@
     if(boundingRect()!= parentItem()->boundingRect()){
          setGeometry(parentItem()->boundingRect());
     }
-    QSize size = parentItem()->boundingRect().size().toSize();
+ /*   QSize size = parentItem()->boundingRect().size().toSize();
     if(size.width() == 0 || size.height() == 0){
         size.setWidth((int)boundingRect().width());
         size.setHeight((int)boundingRect().height());
-    }
+    }*/
     QRectF maskRect;
     if(maximum != minimum) {
         if(maskWidth == 0) {
             if(mOrientation == Qt::Horizontal){
                 qreal left = (qreal)boundingRect().topLeft().x();
                 if(inverted) {
-                    left = (qreal)boundingRect().width()* ((maximum - value)/(qreal) (maximum - minimum));
+                    left = (qreal)boundingRect().width()* ((maximum - value)/(qreal) (mDiff));
                 }
                 maskRect = QRectF(
                         left,
                         (qreal)boundingRect().topLeft().y(),
-                        (qreal)boundingRect().width()* ((value -  minimum)/(qreal) (maximum - minimum)),
+                        (qreal)boundingRect().width()* ((value -  minimum)/(qreal) (mDiff)),
                         (qreal)boundingRect().height()
                     );
 
             }
             else{
             
-				qreal start = boundingRect().bottom() -(qreal)boundingRect().height()*((value -  minimum)/(qreal) (maximum - minimum));
+				qreal start = boundingRect().bottom() -(qreal)boundingRect().height()*((value -  minimum)/(qreal) (mDiff));
 				 maskRect = QRectF(
                         (qreal)boundingRect().topLeft().x(),
                         start,
@@ -113,9 +116,18 @@
         }
     }
 
-	QPainterPath path;
-	path.addRect(maskRect);
-	frameDrawer().setClipPath(path);         
+//	QPainterPath path;
+//	path.addRect(maskRect);
+//	frameDrawer().setClipPath(path);
+    QPixmap pixmap(boundingRect().size().toSize());
+    pixmap.fill(Qt::white);
+    QPainter painter1;
+    painter1.begin(&pixmap);
+    painter1.setBrush(QBrush(Qt::black));
+    painter1.drawRect(maskRect);
+    painter1.end();
+    frameDrawer().setMask(pixmap);
+
     HbFrameItem::paint(painter,option,widget);
 }