diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-18 09:50:40 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-18 10:08:26 +0300 |
commit | 03b9a7b753a255231bedad6a4ad8adcdd09ed842 (patch) | |
tree | 1900c2aec3400622f1a0d9e4bce73082ff943487 /src/datavisualization/data/surfaceitemmodelhandler.cpp | |
parent | 585e66106203dd011ec0777e64d6e4cfc6e9c5ed (diff) |
Remove buggy code for adjusting surface samplespace.
For now we require data range and axis range to be the same.
Change-Id: Ie26a0728f9d6c4a014000ea8ccf71221f799899a
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/data/surfaceitemmodelhandler.cpp')
-rw-r--r-- | src/datavisualization/data/surfaceitemmodelhandler.cpp | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/src/datavisualization/data/surfaceitemmodelhandler.cpp b/src/datavisualization/data/surfaceitemmodelhandler.cpp index 124fe640..10d86695 100644 --- a/src/datavisualization/data/surfaceitemmodelhandler.cpp +++ b/src/datavisualization/data/surfaceitemmodelhandler.cpp @@ -67,6 +67,24 @@ void SurfaceItemModelHandler::resolveModel() bool generateRows = mapping->autoRowCategories(); bool generateColumns = mapping->autoColumnCategories(); + float minRowValue = 0.0f; + float maxRowValue = 0.0f; + float minColumnValue = 0.0f; + float maxColumnValue = 0.0f; + // Init min/max values + if ((generateRows || generateColumns) && rowCount > 0 && columnCount > 0) { + QModelIndex index = m_itemModel->index(0, 0); + QString rowRoleStr = index.data(rowRole).toString(); + QString columnRoleStr = index.data(columnRole).toString(); + if (generateRows) { + minRowValue = rowRoleStr.toFloat(); + maxRowValue = minRowValue; + } + if (generateRows) { + minColumnValue = columnRoleStr.toFloat(); + maxColumnValue = minColumnValue; + } + } QStringList rowList; QStringList columnList; // For detecting duplicates in categories generation, using QHashes should be faster than @@ -86,23 +104,39 @@ void SurfaceItemModelHandler::resolveModel() if (generateRows && !rowListHash.value(rowRoleStr, false)) { rowListHash.insert(rowRoleStr, true); rowList << rowRoleStr; + float rowValue = rowRoleStr.toFloat(); + if (minRowValue > rowValue) + minRowValue = rowValue; + if (maxRowValue < rowValue) + maxRowValue = rowValue; } if (generateColumns && !columnListHash.value(columnRoleStr, false)) { columnListHash.insert(columnRoleStr, true); columnList << columnRoleStr; + float columnValue = columnRoleStr.toFloat(); + if (minColumnValue > columnValue) + minColumnValue = columnValue; + if (maxColumnValue < columnValue) + maxColumnValue = columnValue; } } } - if (generateRows) + if (generateRows) { mapping->dptr()->m_rowCategories = rowList; - else + m_proxy->setMinValueRows(minRowValue); + m_proxy->setMaxValueRows(maxRowValue); + } else { rowList = mapping->rowCategories(); + } - if (generateColumns) + if (generateColumns) { mapping->dptr()->m_columnCategories = columnList; - else + m_proxy->setMinValueColumns(minColumnValue); + m_proxy->setMaxValueColumns(maxColumnValue); + } else { columnList = mapping->columnCategories(); + } // Create new data array from itemValueMap foreach (QString rowKey, rowList) { |