summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-17 14:48:08 +0300
committerMika Salmela <mika.salmela@digia.com>2013-09-17 15:08:55 +0300
commit43435c1b51e81c3ecdfec771950d861df90ebef3 (patch)
tree54d85172a24bf827ffc3ae3a78f51eb7e729c6c1 /src/datavisualization/engine
parent5a7ce4f3f82055a2c17f8735a65b989060cf5052 (diff)
Fix surface crash when row/column counts are one
Change-Id: I6abc3a614f6479dc87631c1b712ab655515a70b2 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index a212b9fd..4023c4ce 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -189,20 +189,24 @@ void Surface3DRenderer::updateDataModel(QSurfaceDataProxy *dataProxy)
}
// If data contains only one row, duplicate it to make surface
- if (sampleSpace.height() == 1)
- m_dataArray << m_dataArray.last();
+ if (sampleSpace.height() == 1) {
+ QSurfaceDataRow *newRow = new QSurfaceDataRow(*m_dataArray.at(0));
+ m_dataArray << newRow;
+ sampleSpace.setHeight(2);
+ }
// If data contains only one column, duplicate the value to make surface
if (sampleSpace.width() == 1) {
for (int i = 0; i < sampleSpace.height(); i++)
- (*m_dataArray.at(i)) << m_dataArray.at(i)->last();
+ (*m_dataArray.at(i)) << m_dataArray.at(i)->at(0);
+ sampleSpace.setWidth(2);
}
if (m_dataArray.size() > 0) {
if (!m_surfaceObj)
loadSurfaceObj();
- QRect sampleSpace(0, 0, m_dataArray.at(0)->size(), m_dataArray.size());
+ sampleSpace.moveTo(0, 0);
bool dimensionChanged = false;
if (m_sampleSpace != sampleSpace) {