From 11c2ee82f698cde1462c1c3304d14423913cea42 2014-09-16 10:16:32 From: Titta Heikkala Date: 2014-09-16 10:16:32 Subject: [PATCH] Fix long label visibility The detection of overlapping items has been corrected. By default, item text is truncated thus only the ellipsis can overlap. Change-Id: I856f440184006b91c23e44d63ddef5b1796f38a1 Task-number: QTRD-3310 Reviewed-by: Miikka Heikkinen --- diff --git a/src/axis/horizontalaxis.cpp b/src/axis/horizontalaxis.cpp index 4b44bf8..7e4b057 100644 --- a/src/axis/horizontalaxis.cpp +++ b/src/axis/horizontalaxis.cpp @@ -65,6 +65,7 @@ void HorizontalAxis::updateGeometry() arrowItem->setLine(gridRect.left(), axisRect.top(), gridRect.right(), axisRect.top()); qreal width = 0; + const QLatin1String ellipsis("..."); //title QRectF titleBoundingRect; @@ -147,8 +148,9 @@ void HorizontalAxis::updateGeometry() labelItem->setPos(leftBound + (delta / 2.0) - center.x(), labelItem->pos().y()); } } + //label overlap detection - compensate one pixel for rounding errors - if (labelItem->pos().x() < width || forceHide || + if ((labelItem->pos().x() < width && labelItem->toPlainText() == ellipsis) || forceHide || (labelItem->pos().x() + (widthDiff / 2.0)) < (axisRect.left() - 1.0) || (labelItem->pos().x() + (widthDiff / 2.0) - 1.0) > axisRect.right()) { labelItem->setVisible(false);