Fix a crash when removing smart meters

This commit is contained in:
Michael Zanetti 2021-10-22 13:46:48 +02:00
parent d47f3cbf59
commit 1dfbfcaffc

View File

@ -245,19 +245,28 @@ MainViewBase {
XYPoint { x: xAxis.min.getTime(); y: 0 }
}
property AreaSeries areaSeries: null
Component.onCompleted: {
var indexInModel = consumers.indexOf(consumer.thing)
print("creating series", consumer.thing.name, index, indexInModel)
seriesAdapter.ensureSamples(xAxis.min, xAxis.max)
var areaSeries = chartView.createSeries(ChartView.SeriesTypeArea, consumer.thing.name, xAxis, yAxis)
areaSeries = chartView.createSeries(ChartView.SeriesTypeArea, consumer.thing.name, xAxis, yAxis)
areaSeries.useOpenGL = true
areaSeries.upperSeries = upperSeries;
if (index > 0) {
areaSeries.lowerSeries = consumersRepeater.itemAt(index - 1).lineSeries
seriesAdapter.baseSeries = consumersRepeater.itemAt(index - 1).lineSeries
} else {
areaSeries.lowerSeries = lowerSeries;
}
seriesAdapter.baseSeries = Qt.binding(function() {
if (index > 0) {
return consumersRepeater.itemAt(index - 1).lineSeries
} else {
return null;
}
})
areaSeries.lowerSeries = Qt.binding(function() {
if (index > 0) {
return consumersRepeater.itemAt(index - 1).lineSeries
} else {
return lowerSeries;
}
})
var color = Style.accentColor
for (var j = 0; j <= indexInModel; j+=2) {
@ -271,6 +280,9 @@ MainViewBase {
areaSeries.borderColor = color;
areaSeries.borderWidth = 0;
}
Component.onDestruction: {
chartView.removeSeries(areaSeries)
}
}
}