Ruler: fix bad scaling for the text background

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@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Lubomir I. Ivanov 2014-03-25 23:34:08 +02:00 committed by Dirk Hohndel
parent 69b000dcff
commit ac23d7397f

View file

@ -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