summaryrefslogtreecommitdiffstats
path: root/plugins/declarative/declarativechart.cpp
diff options
context:
space:
mode:
authorTero Ahola <tero.ahola@digia.com>2012-09-03 12:51:22 +0300
committerTero Ahola <tero.ahola@digia.com>2012-09-03 15:31:44 +0300
commita62b3bfbefaac8b82db669cdfcdd00c3bfade915 (patch)
tree7f6fc8fa29e896c8cc71d3c48c755f7392a3dd1b /plugins/declarative/declarativechart.cpp
parent82bf43b42362b7d5dfc80b9adbb77a89bce2644b (diff)
Fixed a bug in setting axes dynamically via QML API
Diffstat (limited to 'plugins/declarative/declarativechart.cpp')
-rw-r--r--plugins/declarative/declarativechart.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/plugins/declarative/declarativechart.cpp b/plugins/declarative/declarativechart.cpp
index b5aaa735..dce629f7 100644
--- a/plugins/declarative/declarativechart.cpp
+++ b/plugins/declarative/declarativechart.cpp
@@ -255,7 +255,7 @@ void DeclarativeChart::componentComplete()
QAbstractSeries *series = qobject_cast<QAbstractSeries *>(child);
m_chart->addSeries(series);
- // Set optional user defined axes and connect axis related signals
+ // Set optional user defined axes for the series and connect axis related signals
if (qobject_cast<DeclarativeLineSeries *>(child)) {
DeclarativeLineSeries *s = qobject_cast<DeclarativeLineSeries *>(child);
connect(s, SIGNAL(axisXChanged(QAbstractAxis*)), this, SLOT(handleAxisXSet(QAbstractAxis*)));
@@ -317,31 +317,32 @@ void DeclarativeChart::componentComplete()
setAxisX(s->axisX(), s);
setAxisY(s->axisY(), s);
}
-
- // Create the missing axes for the series that cannot be painted without axes
- createDefaultAxes(series);
- } else if(qobject_cast<QAbstractAxis *>(child)) {
- // Do nothing, axes are set for the chart in the context of series
}
}
+ // Create the missing axes for the series that cannot be painted without axes
+ foreach (QAbstractSeries *chartSeries, m_chart->series())
+ createDefaultAxes(chartSeries);
+
QDeclarativeItem::componentComplete();
}
void DeclarativeChart::handleAxisXSet(QAbstractAxis* axis)
{
// qDebug() << "DeclarativeChart::handleAxisXSet" << sender() << axis;
- if (axis && qobject_cast<DeclarativeLineSeries *>(sender())) {
- m_chart->setAxisX(axis, qobject_cast<DeclarativeLineSeries *>(sender()));
- }
+ if (axis && qobject_cast<QAbstractSeries *>(sender()))
+ m_chart->setAxisX(axis, qobject_cast<QAbstractSeries *>(sender()));
+ else
+ qWarning() << "Trying to set axisX to null.";
}
void DeclarativeChart::handleAxisYSet(QAbstractAxis* axis)
{
// qDebug() << "DeclarativeChart::handleAxisYSet" << sender() << axis;
- if (axis && qobject_cast<DeclarativeLineSeries *>(sender())) {
- m_chart->setAxisY(axis, qobject_cast<DeclarativeLineSeries *>(sender()));
- }
+ if (axis && qobject_cast<QAbstractSeries *>(sender()))
+ m_chart->setAxisY(axis, qobject_cast<QAbstractSeries *>(sender()));
+ else
+ qWarning() << "Trying to set axisY to null.";
}
void DeclarativeChart::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)