summaryrefslogtreecommitdiffstats
path: root/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp')
-rw-r--r--src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
index 2e4641c3..4b33cc9c 100644
--- a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
+++ b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp
@@ -27,14 +27,12 @@
**
****************************************************************************/
+#include <QtCharts/qlogvalueaxis.h>
+#include <QtCore/qmath.h>
+#include <QtWidgets/qgraphicslayout.h>
+#include <private/abstractchartlayout_p.h>
#include <private/chartlogvalueaxisx_p.h>
#include <private/chartpresenter_p.h>
-#include <QtCharts/QLogValueAxis>
-#include <private/abstractchartlayout_p.h>
-#include <QtWidgets/QGraphicsLayout>
-#include <QtCore/QtMath>
-#include <QtCore/QDebug>
-#include <cmath>
QT_CHARTS_BEGIN_NAMESPACE
@@ -53,22 +51,16 @@ ChartLogValueAxisX::~ChartLogValueAxisX()
QVector<qreal> ChartLogValueAxisX::calculateLayout() const
{
QVector<qreal> points;
+ points.resize(m_axis->tickCount());
- qreal logMax = std::log10(m_axis->max()) / std::log10(m_axis->base());
- qreal logMin = std::log10(m_axis->min()) / std::log10(m_axis->base());
- qreal leftEdge = logMin < logMax ? logMin : logMax;
- 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++;
+ const qreal logMax = std::log10(m_axis->max()) / std::log10(m_axis->base());
+ const qreal logMin = std::log10(m_axis->min()) / std::log10(m_axis->base());
+ const qreal leftEdge = qMin(logMin, logMax);
+ const qreal ceilEdge = qCeil(leftEdge);
- points.resize(tickCount);
const QRectF &gridRect = gridGeometry();
const qreal deltaX = gridRect.width() / qAbs(logMax - logMin);
- for (int i = 0; i < tickCount; ++i)
+ for (int i = 0; i < m_axis->tickCount(); ++i)
points[i] = (ceilEdge + qreal(i)) * deltaX - leftEdge * deltaX + gridRect.left();
return points;