summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@digia.com>2013-01-21 12:41:15 +0100
committerMichal Klocek <michal.klocek@digia.com>2013-01-21 12:42:28 +0100
commitf065af9daaed390dc22627246a14d5bcac7b8836 (patch)
tree1a996fb7822f74a82594c238dc39061492996418 /src
parentd108889b4c996d187750689e0a8a76d3deee3e37 (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.cpp21
-rw-r--r--src/chartdataset_p.h1
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;