Fix ownership handling: if object has a parent do not delete it

This commit is contained in:
Michal Klocek 2012-03-05 10:25:08 +02:00
parent bf0eb9c3e6
commit 7fb10659b9
2 changed files with 15 additions and 4 deletions

View File

@ -11,15 +11,15 @@ m_index(0)
QTime now = QTime::currentTime();
qsrand((uint)now.msec());
QLineSeries* series0 = new QLineSeries();
QLineSeries* series0 = new QLineSeries(this);
QPen blue(Qt::blue);
blue.setWidth(3);
series0->setPen(blue);
QLineSeries* series1 = new QLineSeries();
QLineSeries* series1 = new QLineSeries(this);
QPen red(Qt::red);
red.setWidth(3);
series1->setPen(red);
QLineSeries* series2 = new QLineSeries();
QLineSeries* series2 = new QLineSeries(this);
QPen green(Qt::green);
green.setWidth(3);
series2->setPen(green);

View File

@ -91,6 +91,12 @@ void ChartDataSet::removeSeries(QSeries* series)
if(i==-1){
Domain* domain = m_axisDomainMap.take(axis);
emit axisRemoved(axis);
if(axis!=axisY()){
if(axis->parent()==this){
delete axis;
axis=0;
}
}
delete domain;
}
@ -275,7 +281,12 @@ Domain* ChartDataSet::domain(QSeries* series) const
Domain* ChartDataSet::domain(QChartAxis* axis) const
{
return m_axisDomainMap.value(axis);
if(axis==axisX()) {
return m_axisDomainMap.value(axisY());
}
else {
return m_axisDomainMap.value(axis);
}
}
QChartAxis* ChartDataSet::axis(QSeries* series) const