diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-09-30 14:41:54 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-01 07:51:44 +0000 |
commit | e6f5cbaa5aca45562fe9bee473d7d76bf67cd54c (patch) | |
tree | 2a5d09bdcde1502844f978f49fb4dfa0bc0081cd /src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp | |
parent | 7a48aa2a436d63737514f6a32129b7eacc77dcb7 (diff) |
Draw the tick and label on logaxis when tick is exactly at high edge
Change-Id: I84afe69868a5ffeaf7f3ef6f9682d8a7fcea3872
Reviewed-by: Titta Heikkala <titta.heikkala@theqtcompany.com>
Diffstat (limited to 'src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp')
-rw-r--r-- | src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp index 01ac498b..c1a247fa 100644 --- a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp +++ b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp @@ -49,6 +49,11 @@ QVector<qreal> ChartLogValueAxisX::calculateLayout() const qreal ceilEdge = qCeil(leftEdge); int tickCount = qAbs(qCeil(logMax) - qCeil(logMin)); + // If the high edge sits exactly on the tick value, add a tick + qreal highValue = logMin < logMax ? logMax : logMin; + if (qFuzzyCompare(highValue, qreal(qCeil(highValue)))) + tickCount++; + points.resize(tickCount); const QRectF &gridRect = gridGeometry(); const qreal deltaX = gridRect.width() / qAbs(logMax - logMin); @@ -90,6 +95,12 @@ QSizeF ChartLogValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint qreal logMax = std::log10(m_axis->max()) / std::log10(m_axis->base()); qreal logMin = std::log10(m_axis->min()) / std::log10(m_axis->base()); int tickCount = qAbs(qCeil(logMax) - qCeil(logMin)); + + // If the high edge sits exactly on the tick value, add a tick + qreal highValue = logMin < logMax ? logMax : logMin; + if (qFuzzyCompare(highValue, qreal(qCeil(highValue)))) + tickCount++; + if (m_axis->max() > m_axis->min() && tickCount > 0) ticksList = createLogValueLabels(m_axis->min(), m_axis->max(), m_axis->base(), tickCount, m_axis->labelFormat()); else |