summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2020-02-11 10:27:56 +0100
committerAndy Shaw <andy.shaw@qt.io>2020-02-11 11:07:36 +0100
commit5d0f4509012b9512e55f0a2483440d81bf32502c (patch)
treee2389c67090195eca50e5479886be6c1f33bfab3
parente0c9c474989394ba13419d645326f4708f9ff8c3 (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.cpp17
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);