From b49bd4aea2265de243e41c19ffa44f04759bcf8d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 3 Jun 2014 14:15:50 +0300 Subject: Misc fixes found during testing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Memory leaks - Y-axis placement issues in scatter and surface Change-Id: I7ec6c9c3e53502445b52c049c973186a7c54c95f Reviewed-by: Titta Heikkala Reviewed-by: Tomi Korpipää --- src/datavisualization/data/baritemmodelhandler.cpp | 2 ++ src/datavisualization/data/surfaceitemmodelhandler.cpp | 2 ++ src/datavisualization/engine/scatter3drenderer.cpp | 2 ++ src/datavisualization/engine/surface3drenderer.cpp | 2 ++ tests/scattertest/scatterchart.cpp | 16 +++++++++++----- tests/scattertest/scatterchart.h | 1 + 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/datavisualization/data/baritemmodelhandler.cpp b/src/datavisualization/data/baritemmodelhandler.cpp index a899ef39..62e6390d 100644 --- a/src/datavisualization/data/baritemmodelhandler.cpp +++ b/src/datavisualization/data/baritemmodelhandler.cpp @@ -282,6 +282,8 @@ void BarItemModelHandler::resolveModel() rowLabels = rowList; columnLabels = columnList; m_columnCount = columnList.size(); + + delete matchCountMap; } m_proxy->resetArray(m_proxyArray, rowLabels, columnLabels); diff --git a/src/datavisualization/data/surfaceitemmodelhandler.cpp b/src/datavisualization/data/surfaceitemmodelhandler.cpp index e3d50a80..e6d1e70d 100644 --- a/src/datavisualization/data/surfaceitemmodelhandler.cpp +++ b/src/datavisualization/data/surfaceitemmodelhandler.cpp @@ -313,6 +313,8 @@ void SurfaceItemModelHandler::resolveModel() newProxyRow[j].setPosition(itemPos); } } + + delete matchCountMap; } m_proxy->resetArray(m_proxyArray); diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index f1508193..9a93a7ca 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -1678,6 +1678,8 @@ void Scatter3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCa labelsMaxWidth = qMax(labelsMaxWidth, float(axisLabelItem.size().width())); } if (!drawSelection && m_axisCacheY.isTitleVisible()) { + labelTransSide.setY(0.0f); + labelTransBack.setY(0.0f); drawAxisTitleY(sideLabelRotation, backLabelRotation, labelTransSide, labelTransBack, totalSideRotation, totalBackRotation, m_dummyRenderItem, activeCamera, labelsMaxWidth, viewMatrix, projectionMatrix, diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index e193cf67..09699278 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -2157,6 +2157,8 @@ void Surface3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCa labelsMaxWidth = qMax(labelsMaxWidth, float(axisLabelItem.size().width())); } if (!drawSelection && m_axisCacheY.isTitleVisible()) { + labelTransSide.setY(0.0f); + labelTransBack.setY(0.0f); drawAxisTitleY(sideLabelRotation, backLabelRotation, labelTransSide, labelTransBack, totalSideRotation, totalBackRotation, m_dummyRenderItem, activeCamera, labelsMaxWidth, viewMatrix, projectionMatrix, diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index dce73e61..e498b2da 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -250,7 +250,7 @@ void ScatterDataModifier::testItemChanges() foreach (QScatter3DSeries *series, m_chart->seriesList()) m_chart->removeSeries(series); foreach (QValue3DAxis *axis, m_chart->axes()) - m_chart->releaseAxis(axis); + deleteAxis(axis); delete series0; delete series1; delete series2; @@ -425,7 +425,7 @@ void ScatterDataModifier::testAxisReverse() foreach (QScatter3DSeries *series, m_chart->seriesList()) m_chart->removeSeries(series); foreach (QValue3DAxis *axis, m_chart->axes()) - m_chart->releaseAxis(axis); + deleteAxis(axis); delete series0; delete series1; series0 = new QScatter3DSeries; @@ -627,11 +627,17 @@ void ScatterDataModifier::clear() qDebug() << m_loopCounter << "Cleared array"; } +void ScatterDataModifier::deleteAxis(QValue3DAxis *axis) +{ + m_chart->releaseAxis(axis); + delete axis; +} + void ScatterDataModifier::resetAxes() { - m_chart->releaseAxis(m_chart->axisX()); - m_chart->releaseAxis(m_chart->axisY()); - m_chart->releaseAxis(m_chart->axisZ()); + deleteAxis(m_chart->axisX()); + deleteAxis(m_chart->axisY()); + deleteAxis(m_chart->axisZ()); m_chart->setAxisX(new QValue3DAxis); m_chart->setAxisY(new QValue3DAxis); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 420c68e3..983b605a 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -102,6 +102,7 @@ private: void populateFlatSeries(QScatter3DSeries *series, int rows, int columns, float value); void populateRisingSeries(QScatter3DSeries *series, int rows, int columns, float minValue, float maxValue); + void deleteAxis(QValue3DAxis *axis); Q3DScatter *m_chart; int m_fontSize; -- cgit v1.2.3