diff options
author | Titta Heikkala <titta.heikkala@digia.com> | 2013-08-13 09:46:16 +0300 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@digia.com> | 2013-08-14 08:37:38 +0300 |
commit | 949e3e70938f3e186b3865ae1c15fe17b93e7362 (patch) | |
tree | 2b0bcdd19a66b5b506277ff7b299e33abee71b4f /plugins/declarative/declarativechart.cpp | |
parent | 1427ecd2e3911e1a2fc325a2973e85a310bfb944 (diff) |
Fix dynamic qml axis switch
The axis is set so that previously attached axes are deleted.
Task-number: QTRD-1936
Change-Id: I4fc486b3f2552eea168ba5fb44c1b82f1c5ebad0
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'plugins/declarative/declarativechart.cpp')
-rw-r--r-- | plugins/declarative/declarativechart.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/plugins/declarative/declarativechart.cpp b/plugins/declarative/declarativechart.cpp index 685da43b..5d17bdad 100644 --- a/plugins/declarative/declarativechart.cpp +++ b/plugins/declarative/declarativechart.cpp @@ -372,7 +372,7 @@ void DeclarativeChart::handleAxisXSet(QAbstractAxis *axis) QAbstractSeries *s = qobject_cast<QAbstractSeries *>(sender()); if (axis && s) { if (!m_chart->axes(Qt::Horizontal).contains(axis)) - m_chart->addAxis(axis, Qt::AlignBottom); + m_chart->setAxisX(axis, s); if (!s->attachedAxes().contains(axis)) s->attachAxis(axis); } else { @@ -384,8 +384,14 @@ void DeclarativeChart::handleAxisXTopSet(QAbstractAxis *axis) { QAbstractSeries *s = qobject_cast<QAbstractSeries *>(sender()); if (axis && s) { - if (!m_chart->axes(Qt::Horizontal).contains(axis)) + if (!m_chart->axes(Qt::Horizontal).contains(axis)) { + QList<QAbstractAxis *> oldAxes = m_chart->axes(Qt::Horizontal, s); + foreach (QAbstractAxis* a, oldAxes) { + m_chart->removeAxis(a); + delete a; + } m_chart->addAxis(axis, Qt::AlignTop); + } if (!s->attachedAxes().contains(axis)) s->attachAxis(axis); } else { @@ -398,7 +404,7 @@ void DeclarativeChart::handleAxisYSet(QAbstractAxis *axis) QAbstractSeries *s = qobject_cast<QAbstractSeries *>(sender()); if (axis && s) { if (!m_chart->axes(Qt::Vertical).contains(axis)) - m_chart->addAxis(axis, Qt::AlignLeft); + m_chart->setAxisY(axis, s); if (!s->attachedAxes().contains(axis)) s->attachAxis(axis); } else { @@ -410,8 +416,14 @@ void DeclarativeChart::handleAxisYRightSet(QAbstractAxis *axis) { QAbstractSeries *s = qobject_cast<QAbstractSeries *>(sender()); if (axis && s) { - if (!m_chart->axes(Qt::Vertical).contains(axis)) + if (!m_chart->axes(Qt::Vertical).contains(axis)) { + QList<QAbstractAxis *> oldAxes = m_chart->axes((Qt::Vertical), s); + foreach (QAbstractAxis* a, oldAxes) { + m_chart->removeAxis(a); + delete a; + } m_chart->addAxis(axis, Qt::AlignRight); + } if (!s->attachedAxes().contains(axis)) s->attachAxis(axis); } else { |