diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-30 11:06:58 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-01 09:03:24 +0300 |
commit | 822a19d3e2650c7a9326b69ff4621ccd556e16cc (patch) | |
tree | 064fba99ba0e4ec7a3113c5fb051d3cd50972360 /src/datavisualization/data/surfaceitemmodelhandler.cpp | |
parent | 52fcca463e63500bea81b0ac3615d4779bc7682c (diff) |
Refactor surface data item to have X, Y, and Z values.
Task-number: QTRD-2332
Change-Id: I086d3a422ff444cbcede1aa238107ebcbce68729
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/data/surfaceitemmodelhandler.cpp')
-rw-r--r-- | src/datavisualization/data/surfaceitemmodelhandler.cpp | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/src/datavisualization/data/surfaceitemmodelhandler.cpp b/src/datavisualization/data/surfaceitemmodelhandler.cpp index a9882040..70482162 100644 --- a/src/datavisualization/data/surfaceitemmodelhandler.cpp +++ b/src/datavisualization/data/surfaceitemmodelhandler.cpp @@ -49,11 +49,6 @@ void SurfaceItemModelHandler::resolveModel() return; } - float minRowValue = 0.0f; - float maxRowValue = 1.0f; - float minColumnValue = 0.0f; - float maxColumnValue = 1.0f; - QHash<int, QByteArray> roleHash = m_itemModel->roleNames(); // Default to display role if no mapping @@ -72,16 +67,12 @@ void SurfaceItemModelHandler::resolveModel() } for (int i = 0; i < rowCount; i++) { QSurfaceDataRow &newProxyRow = *m_proxyArray->at(i); - for (int j = 0; j < columnCount; j++) - newProxyRow[j] = m_itemModel->index(i, j).data(valueRole).toReal(); - } - if (rowCount) { - minRowValue = m_itemModel->headerData(0, Qt::Vertical).toFloat(); - maxRowValue = m_itemModel->headerData(rowCount - 1, Qt::Vertical).toFloat(); - } - if (columnCount) { - minColumnValue = m_itemModel->headerData(0, Qt::Horizontal).toFloat(); - maxColumnValue = m_itemModel->headerData(columnCount - 1, Qt::Horizontal).toFloat(); + for (int j = 0; j < columnCount; j++) { + newProxyRow[j].setPosition( + QVector3D(m_itemModel->headerData(j, Qt::Horizontal).toFloat(), + m_itemModel->index(i, j).data(valueRole).toFloat(), + m_itemModel->headerData(i, Qt::Vertical).toFloat())); + } } } else { int rowRole = roleHash.key(mapping->rowRole().toLatin1()); @@ -139,22 +130,15 @@ void SurfaceItemModelHandler::resolveModel() for (int i = 0; i < rowList.size(); i++) { QString rowKey = rowList.at(i); QSurfaceDataRow &newProxyRow = *m_proxyArray->at(i); - for (int j = 0; j < columnList.size(); j++) - newProxyRow[j] = itemValueMap[rowKey][columnList.at(j)]; - } - - // Use first and last roles converted to values for limits - if (rowList.size()) { - minRowValue = rowList.first().toFloat(); - maxRowValue = rowList.last().toFloat(); - } - if (columnList.size()) { - minColumnValue = columnList.first().toFloat(); - maxColumnValue = columnList.last().toFloat(); + for (int j = 0; j < columnList.size(); j++) { + newProxyRow[j].setPosition(QVector3D(columnList.at(j).toFloat(), + itemValueMap[rowKey][columnList.at(j)], + rowList.at(i).toFloat())); + } } } - m_proxy->resetArray(m_proxyArray, minRowValue, maxRowValue, minColumnValue, maxColumnValue); + m_proxy->resetArray(m_proxyArray); } QT_DATAVISUALIZATION_END_NAMESPACE |