diff options
author | Michal Klocek <michal.klocek@digia.com> | 2013-01-21 12:41:15 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@digia.com> | 2013-01-21 12:42:28 +0100 |
commit | f065af9daaed390dc22627246a14d5bcac7b8836 (patch) | |
tree | 1a996fb7822f74a82594c238dc39061492996418 /src | |
parent | d108889b4c996d187750689e0a8a76d3deee3e37 (diff) |
adds Andy's customer request, first call to createDaultAxis scales whole domain (if on common axis)
Diffstat (limited to 'src')
-rw-r--r-- | src/chartdataset.cpp | 21 | ||||
-rw-r--r-- | src/chartdataset_p.h | 1 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/chartdataset.cpp b/src/chartdataset.cpp index 5558b7d9..05a05102 100644 --- a/src/chartdataset.cpp +++ b/src/chartdataset.cpp @@ -303,11 +303,13 @@ void ChartDataSet::createAxes(QAbstractAxis::AxisTypes type, Qt::Orientation ori //create one axis for all addAxis(axis,orientation==Qt::Horizontal?Qt::AlignBottom:Qt::AlignLeft); - + qreal min = 0; + qreal max = 0; + findMinMaxForSeries(m_seriesList,orientation,min,max); foreach(QAbstractSeries *s, m_seriesList) { attachAxis(s,axis); } - + axis->setRange(min,max); } else if (!type.testFlag(QAbstractAxis::AxisTypeNoAxis)) { //create separate axis @@ -321,6 +323,21 @@ void ChartDataSet::createAxes(QAbstractAxis::AxisTypes type, Qt::Orientation ori } } +void ChartDataSet::findMinMaxForSeries(QList<QAbstractSeries *> series,Qt::Orientations orientation, qreal &min, qreal &max) +{ + Q_ASSERT(!series.isEmpty()); + + AbstractDomain* domain = series.first()->d_ptr->domain(); + min = (orientation == Qt::Vertical) ? domain->minY() : domain->minX(); + max = (orientation == Qt::Vertical) ? domain->maxY() : domain->maxX(); + + for(int i = 1; i< series.size(); i++) { + AbstractDomain* domain = series[i]->d_ptr->domain(); + min = qMin((orientation == Qt::Vertical) ? domain->minY() : domain->minX(), min); + max = qMax((orientation == Qt::Vertical) ? domain->maxY() : domain->maxX(), max); + } +} + void ChartDataSet::deleteAllSeries() { foreach (QAbstractSeries *s , m_seriesList){ diff --git a/src/chartdataset_p.h b/src/chartdataset_p.h index 939e5d72..49a41d0e 100644 --- a/src/chartdataset_p.h +++ b/src/chartdataset_p.h @@ -80,6 +80,7 @@ private: AbstractDomain* createDomain(AbstractDomain::DomainType type); void deleteAllAxes(); void deleteAllSeries(); + void findMinMaxForSeries(QList<QAbstractSeries *> series,Qt::Orientations orientation, qreal &min, qreal &max); private: QList<QAbstractSeries *> m_seriesList; QList<QAbstractAxis *> m_axisList; |