summaryrefslogtreecommitdiffstats
path: root/src/charts/axis/valueaxis/chartvalueaxisx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/axis/valueaxis/chartvalueaxisx.cpp')
-rw-r--r--src/charts/axis/valueaxis/chartvalueaxisx.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/charts/axis/valueaxis/chartvalueaxisx.cpp b/src/charts/axis/valueaxis/chartvalueaxisx.cpp
index 024bfaf7..db943480 100644
--- a/src/charts/axis/valueaxis/chartvalueaxisx.cpp
+++ b/src/charts/axis/valueaxis/chartvalueaxisx.cpp
@@ -1,12 +1,11 @@
/****************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Charts module of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:COMM$
-**
+** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
@@ -15,15 +14,16 @@
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
-** $QT_END_LICENSE$
-**
-**
-**
-**
-**
-**
-**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
+** $QT_END_LICENSE$
**
****************************************************************************/
@@ -75,22 +75,21 @@ QVector<qreal> ChartValueAxisX::calculateLayout() const
return points;
} else { // QValueAxis::TicksDynamic
const qreal interval = m_axis->tickInterval();
- qreal value = m_axis->tickAnchor();
+ const qreal anchor = m_axis->tickAnchor();
const qreal maxValue = max();
const qreal minValue = min();
- // Find the first major tick right after the min of range
- if (value > minValue)
- value = value - int((value - minValue) / interval) * interval;
- else
- value = value + qCeil((minValue - value) / interval) * interval;
+ // Find the first major tick right after the min of the range
+ const qreal ticksFromAnchor = (anchor - minValue) / interval;
+ const qreal firstMajorTick = anchor - std::floor(ticksFromAnchor) * interval;
const QRectF &gridRect = gridGeometry();
const qreal deltaX = gridRect.width() / (maxValue - minValue);
QVector<qreal> points;
const qreal leftPos = gridRect.left();
- while (value <= maxValue || qFuzzyCompare(value, maxValue)) {
+ qreal value = firstMajorTick;
+ while (value <= maxValue) {
points << (value - minValue) * deltaX + leftPos;
value += interval;
}