summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data/surfaceitemmodelhandler.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-18 09:50:40 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-18 10:08:26 +0300
commit03b9a7b753a255231bedad6a4ad8adcdd09ed842 (patch)
tree1900c2aec3400622f1a0d9e4bce73082ff943487 /src/datavisualization/data/surfaceitemmodelhandler.cpp
parent585e66106203dd011ec0777e64d6e4cfc6e9c5ed (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.cpp42
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) {