diff --git a/analyzer/analytics/analyticsview.cpp b/analyzer/analytics/analyticsview.cpp index acc556fd5cd73ccdb55d0a37434f878fea023593..e0df60fa5a5a86ee9726341c0bc75be9b3307416 100644 --- a/analyzer/analytics/analyticsview.cpp +++ b/analyzer/analytics/analyticsview.cpp @@ -116,9 +116,9 @@ void AnalyticsView::setRESTClient(RESTClient* client) void AnalyticsView::setProduct(const Product& product) { + m_chart->setModel(nullptr); m_dataModel->setProduct(product); - m_chart->setModel(nullptr); ui->chartType->clear(); m_aggregatedDataModel->clear(); qDeleteAll(m_aggregationModels); diff --git a/analyzer/chart.cpp b/analyzer/chart.cpp index 419719e3ef2eeb3d564bddf4d45d04641c354a53..bd7f7a57186375cb17ba9a8827732d75af595a9d 100644 --- a/analyzer/chart.cpp +++ b/analyzer/chart.cpp @@ -70,8 +70,10 @@ void Chart::setModel(QAbstractItemModel* model) disconnect(m_model, &QAbstractItemModel::modelReset, this, &Chart::modelReset); m_model = model; - if (!model) + if (!model) { + m_chart->removeAllSeries(); return; + } connect(m_model, &QAbstractItemModel::modelReset, this, &Chart::modelReset); modelReset(); @@ -111,7 +113,7 @@ void Chart::modelReset() } else { QLineSeries *prevSeries = nullptr; for (int i = 1; i < colCount; ++i) { - auto series = new QLineSeries(this); + auto series = new QLineSeries; auto mapper = new QVXYModelMapper(series); mapper->setModel(m_model); @@ -121,6 +123,7 @@ void Chart::modelReset() mapper->setSeries(series); auto areaSeries = new QAreaSeries(series, prevSeries); + series->setParent(areaSeries); // otherwise series isn't deleted by removeAllSeries! areaSeries->setName(m_model->headerData(i, Qt::Horizontal).toString().toHtmlEscaped()); m_chart->addSeries(areaSeries);