diff options
author | Tero Ahola <tero.ahola@digia.com> | 2012-09-03 12:51:22 +0300 |
---|---|---|
committer | Tero Ahola <tero.ahola@digia.com> | 2012-09-03 15:31:44 +0300 |
commit | a62b3bfbefaac8b82db669cdfcdd00c3bfade915 (patch) | |
tree | 7f6fc8fa29e896c8cc71d3c48c755f7392a3dd1b /plugins/declarative/declarativechart.cpp | |
parent | 82bf43b42362b7d5dfc80b9adbb77a89bce2644b (diff) |
Fixed a bug in setting axes dynamically via QML API
Diffstat (limited to 'plugins/declarative/declarativechart.cpp')
-rw-r--r-- | plugins/declarative/declarativechart.cpp | 25 |
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) |