diff options
author | Andy Shaw <andy.shaw@qt.io> | 2020-02-11 10:27:56 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2020-02-11 11:07:36 +0100 |
commit | 5d0f4509012b9512e55f0a2483440d81bf32502c (patch) | |
tree | e2389c67090195eca50e5479886be6c1f33bfab3 | |
parent | e0c9c474989394ba13419d645326f4708f9ff8c3 (diff) |
Don't overlap the labels on a vertical axis instead of eliding
We make sure that the title and the axis has their own available space
to work with since the title will be rotated, but the axis labels are
not. Therefore they work with different aspects of the axis rectangles.
Fixes: QTBUG-81636
Change-Id: Ie797b5b5d7155d247a5dfec20a0e10cdebc1d097
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/charts/axis/verticalaxis.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/charts/axis/verticalaxis.cpp b/src/charts/axis/verticalaxis.cpp index fc0f093b..6282f297 100644 --- a/src/charts/axis/verticalaxis.cpp +++ b/src/charts/axis/verticalaxis.cpp @@ -108,12 +108,13 @@ void VerticalAxis::updateGeometry() //title QRectF titleBoundingRect; QString titleText = axis()->titleText(); - qreal availableSpace = axisRect.height() - labelPadding(); + qreal labelAvailableSpace = axisRect.width(); if (!titleText.isEmpty() && titleItem()->isVisible()) { - availableSpace -= titlePadding() * 2.0; + const qreal titleAvailableSpace = + axisRect.height() - labelPadding() - (titlePadding() * 2.0); qreal minimumLabelWidth = ChartPresenter::textBoundingRect(axis()->labelsFont(), QStringLiteral("...")).width(); - qreal titleSpace = availableSpace - minimumLabelWidth; + qreal titleSpace = titleAvailableSpace - minimumLabelWidth; title->setHtml(ChartPresenter::truncatedText(axis()->titleFont(), titleText, qreal(90.0), titleSpace, gridRect.height(), titleBoundingRect)); @@ -132,8 +133,7 @@ void VerticalAxis::updateGeometry() title->setTransformOriginPoint(titleBoundingRect.center()); title->setRotation(270); - - availableSpace -= titleBoundingRect.height(); + labelAvailableSpace -= titleBoundingRect.height(); } QList<QGraphicsItem *> lines = gridItems(); @@ -166,10 +166,9 @@ void VerticalAxis::updateGeometry() labelItem->setHtml(text); } else { qreal labelHeight = (axisRect.height() / layout.count()) - (2 * labelPadding()); - QString truncatedText = ChartPresenter::truncatedText(axis()->labelsFont(), text, - axis()->labelsAngle(), - availableSpace, - labelHeight, boundingRect); + QString truncatedText = + ChartPresenter::truncatedText(axis()->labelsFont(), text, axis()->labelsAngle(), + labelAvailableSpace, labelHeight, boundingRect); labelItem->setTextWidth(ChartPresenter::textBoundingRect(axis()->labelsFont(), truncatedText).width()); labelItem->setHtml(truncatedText); |