summaryrefslogtreecommitdiffstats
path: root/src/charts/areachart/qareaseries.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2016-11-04 10:11:14 +0200
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2016-11-04 10:57:43 +0000
commitfd45b70695b0bb98dd516b195dbed3f4682b4110 (patch)
tree11de0b2a7c9dc0f53c5a3a1839c26c98027f632c /src/charts/areachart/qareaseries.cpp
parent71ebd6991d00ccfec6d4226ce073658cd5391ad5 (diff)
Fix domain initialization for area series
If area series didn't have negative values, domain minimum was initialized incorrectly. Now domain initialization for area series uses same logic as QXYSeries. Task-number: QTBUG-56900 Change-Id: I1e269b95f92f9fe6a9f5d9dfd24c1403dda83146 Reviewed-by: Mika Salmela <mika.salmela@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/charts/areachart/qareaseries.cpp')
-rw-r--r--src/charts/areachart/qareaseries.cpp52
1 files changed, 34 insertions, 18 deletions
diff --git a/src/charts/areachart/qareaseries.cpp b/src/charts/areachart/qareaseries.cpp
index c309e305..fb3bd0b1 100644
--- a/src/charts/areachart/qareaseries.cpp
+++ b/src/charts/areachart/qareaseries.cpp
@@ -643,10 +643,10 @@ void QAreaSeriesPrivate::initializeDomain()
{
Q_Q(QAreaSeries);
- qreal minX(domain()->minX());
- qreal minY(domain()->minY());
- qreal maxX(domain()->maxX());
- qreal maxY(domain()->maxY());
+ qreal minX(0.0);
+ qreal minY(0.0);
+ qreal maxX(1.0);
+ qreal maxY(1.0);
QLineSeries *upperSeries = q->upperSeries();
QLineSeries *lowerSeries = q->lowerSeries();
@@ -654,25 +654,41 @@ void QAreaSeriesPrivate::initializeDomain()
if (upperSeries) {
const QVector<QPointF> &points = upperSeries->pointsVector();
- for (int i = 0; i < points.count(); i++) {
- qreal x = points[i].x();
- qreal y = points[i].y();
- minX = qMin(minX, x);
- minY = qMin(minY, y);
- maxX = qMax(maxX, x);
- maxY = qMax(maxY, y);
+ if (!points.isEmpty()) {
+ minX = points[0].x();
+ minY = points[0].y();
+ maxX = minX;
+ maxY = minY;
+
+ for (int i = 0; i < points.count(); i++) {
+ qreal x = points[i].x();
+ qreal y = points[i].y();
+ minX = qMin(minX, x);
+ minY = qMin(minY, y);
+ maxX = qMax(maxX, x);
+ maxY = qMax(maxY, y);
+ }
}
}
if (lowerSeries) {
const QVector<QPointF> &points = lowerSeries->pointsVector();
- for (int i = 0; i < points.count(); i++) {
- qreal x = points[i].x();
- qreal y = points[i].y();
- minX = qMin(minX, x);
- minY = qMin(minY, y);
- maxX = qMax(maxX, x);
- maxY = qMax(maxY, y);
+ if (!points.isEmpty()) {
+ if (!upperSeries) {
+ minX = points[0].x();
+ minY = points[0].y();
+ maxX = minX;
+ maxY = minY;
+ }
+
+ for (int i = 0; i < points.count(); i++) {
+ qreal x = points[i].x();
+ qreal y = points[i].y();
+ minX = qMin(minX, x);
+ minY = qMin(minY, y);
+ maxX = qMax(maxX, x);
+ maxY = qMax(maxY, y);
+ }
}
}