summaryrefslogtreecommitdiffstats
path: root/plugins/declarative/declarativechart.cpp
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2013-08-13 09:46:16 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2013-08-14 08:37:38 +0300
commit949e3e70938f3e186b3865ae1c15fe17b93e7362 (patch)
tree2b0bcdd19a66b5b506277ff7b299e33abee71b4f /plugins/declarative/declarativechart.cpp
parent1427ecd2e3911e1a2fc325a2973e85a310bfb944 (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.cpp20
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 {