summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2013-09-23 12:12:31 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2013-09-23 13:18:17 +0300
commitc8086b11eeb52bd805ac8fb484df645d7199d819 (patch)
treeac219619245b072051138a857553d447a6cce48a /src
parent1a7a17f8e2cd9ff07852a402b74b47257192da74 (diff)
Fix default axes creation
QAbstractAxis::AxisType enum values are currently sequential so it's not possible to OR them correctly. Therefore createDefaultAxes() needs to check whether there are series with different types present. For multiple series types the QAbstractAxis::AxisTypeNoAxis type is used to indicate the need for several axes. The createDefaultAxis() methods have been corrected to return proper values. Task-number: QTRD-1999 Change-Id: I3408bd3043b147f9e2b7662fb4d9ca43e7a72da6 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/areachart/qareaseries.cpp2
-rw-r--r--src/barchart/qabstractbarseries.cpp6
-rw-r--r--src/boxplotchart/qboxplotseries.cpp7
-rw-r--r--src/chartdataset.cpp18
-rw-r--r--src/xychart/qxyseries.cpp2
5 files changed, 25 insertions, 10 deletions
diff --git a/src/areachart/qareaseries.cpp b/src/areachart/qareaseries.cpp
index 38708933..e0be0449 100644
--- a/src/areachart/qareaseries.cpp
+++ b/src/areachart/qareaseries.cpp
@@ -438,7 +438,7 @@ QAbstractAxis::AxisType QAreaSeriesPrivate::defaultAxisType(Qt::Orientation orie
QAbstractAxis* QAreaSeriesPrivate::createDefaultAxis(Qt::Orientation orientation) const
{
Q_UNUSED(orientation);
- return 0;
+ return new QValueAxis;
}
void QAreaSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bool forced)
diff --git a/src/barchart/qabstractbarseries.cpp b/src/barchart/qabstractbarseries.cpp
index c9723ad6..1e7a8a55 100644
--- a/src/barchart/qabstractbarseries.cpp
+++ b/src/barchart/qabstractbarseries.cpp
@@ -852,8 +852,10 @@ void QAbstractBarSeriesPrivate::populateCategories(QBarCategoryAxis *axis)
QAbstractAxis* QAbstractBarSeriesPrivate::createDefaultAxis(Qt::Orientation orientation) const
{
- Q_UNUSED(orientation);
- return 0;
+ if (defaultAxisType(orientation) == QAbstractAxis::AxisTypeBarCategory)
+ return new QBarCategoryAxis;
+ else
+ return new QValueAxis;
}
void QAbstractBarSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bool forced)
diff --git a/src/boxplotchart/qboxplotseries.cpp b/src/boxplotchart/qboxplotseries.cpp
index 2d05f983..22a3eb75 100644
--- a/src/boxplotchart/qboxplotseries.cpp
+++ b/src/boxplotchart/qboxplotseries.cpp
@@ -394,9 +394,10 @@ QAbstractAxis::AxisType QBoxPlotSeriesPrivate::defaultAxisType(Qt::Orientation o
QAbstractAxis* QBoxPlotSeriesPrivate::createDefaultAxis(Qt::Orientation orientation) const
{
- Q_UNUSED(orientation);
-
- return 0;
+ if (defaultAxisType(orientation) == QAbstractAxis::AxisTypeBarCategory)
+ return new QBarCategoryAxis;
+ else
+ return new QValueAxis;
}
void QBoxPlotSeriesPrivate::populateCategories(QBarCategoryAxis *axis)
diff --git a/src/chartdataset.cpp b/src/chartdataset.cpp
index f18012a2..fe0778ed 100644
--- a/src/chartdataset.cpp
+++ b/src/chartdataset.cpp
@@ -315,8 +315,20 @@ void ChartDataSet::createDefaultAxes()
}
// Create the axes of the types selected
- createAxes(typeX, Qt::Horizontal);
- createAxes(typeY, Qt::Vertical);
+ // As long as AxisType enum balues are sequential a check to see if there are series of
+ // different types is needed. In such cases AxisTypeNoAxis is used to create separate axes
+ // for the types.
+ if (typeX != QAbstractAxis::AxisTypeNoAxis) {
+ if (typeX != m_seriesList.first()->d_ptr->defaultAxisType(Qt::Horizontal))
+ typeX = QAbstractAxis::AxisTypeNoAxis;
+ createAxes(typeX, Qt::Horizontal);
+ }
+
+ if (typeY != QAbstractAxis::AxisTypeNoAxis) {
+ if (typeY != m_seriesList.first()->d_ptr->defaultAxisType(Qt::Vertical))
+ typeY = QAbstractAxis::AxisTypeNoAxis;
+ createAxes(typeY, Qt::Vertical);
+ }
}
@@ -357,7 +369,7 @@ void ChartDataSet::createAxes(QAbstractAxis::AxisTypes type, Qt::Orientation ori
}
axis->setRange(min,max);
}
- else if (!type.testFlag(QAbstractAxis::AxisTypeNoAxis)) {
+ else if (type.testFlag(QAbstractAxis::AxisTypeNoAxis)) {
//create separate axis
foreach(QAbstractSeries *s, m_seriesList) {
QAbstractAxis *axis = s->d_ptr->createDefaultAxis(orientation);
diff --git a/src/xychart/qxyseries.cpp b/src/xychart/qxyseries.cpp
index 5c2d89f2..88d18563 100644
--- a/src/xychart/qxyseries.cpp
+++ b/src/xychart/qxyseries.cpp
@@ -575,7 +575,7 @@ QAbstractAxis::AxisType QXYSeriesPrivate::defaultAxisType(Qt::Orientation orient
QAbstractAxis* QXYSeriesPrivate::createDefaultAxis(Qt::Orientation orientation) const
{
Q_UNUSED(orientation);
- return 0;
+ return new QValueAxis;
}
void QXYSeriesPrivate::initializeAnimations(QtCommercialChart::QChart::AnimationOptions options)