[PATCH 1/5] Ruler: fix bad scaling for the text background

Lubomir I. Ivanov neolit123 at gmail.com
Tue Mar 25 14:34:08 PDT 2014


From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

The ruler text's white background scales badly. This patch
adds the ItemIgnoresTransformations for the textItemBack
object and matches the dimensions and position of the
textItem object in front of it.

Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
 qt-ui/profile/ruleritem.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/qt-ui/profile/ruleritem.cpp b/qt-ui/profile/ruleritem.cpp
index 5d2b527..768d912 100644
--- a/qt-ui/profile/ruleritem.cpp
+++ b/qt-ui/profile/ruleritem.cpp
@@ -77,6 +77,7 @@ RulerItem2::RulerItem2() : source(new RulerNodeItem2()),
 	textItem->setFlag(QGraphicsItem::ItemIgnoresTransformations);
 	textItemBack->setBrush(QColor(0xff, 0xff, 0xff, 190));
 	textItemBack->setPen(QColor(Qt::white));
+	textItemBack->setFlag(QGraphicsItem::ItemIgnoresTransformations);
 	setPen(QPen(QColor(Qt::black), 0.0));
 }
 
@@ -117,13 +118,13 @@ void RulerItem2::recalculate()
 	}
 	// always show the text bellow the lowest of the start and end points
 	qreal tgtY = (startPoint.y() >= endPoint.y()) ? startPoint.y() : endPoint.y();
-	textItem->setPos(tgtX - 1, tgtY + 4);
+	// this isn't exactly optimal, since we want to scale the 1.0, 4.0 distances as well
+	textItem->setPos(tgtX - 1.0, tgtY + 4.0);
 
 	// setup the text background
 	textItemBack->setVisible(startPoint.x() != endPoint.x());
-	QPointF wh = mapFromScene(view->mapToScene(QPoint(textItem->boundingRect().width(),
-		textItem->boundingRect().height())));
-	textItemBack->setRect(tgtX - 2, tgtY + 3, wh.x() + 2, wh.y() + 3);
+	textItemBack->setPos(textItem->x(), textItem->y());
+	textItemBack->setRect(0, 0, textItem->boundingRect().width(), textItem->boundingRect().height());
 }
 
 RulerNodeItem2 *RulerItem2::sourceNode() const
-- 
1.7.11.msysgit.0



More information about the subsurface mailing list