diff options
author | Mika Salmela <mika.salmela@digia.com> | 2014-02-10 10:26:30 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2014-02-10 10:30:49 +0200 |
commit | 51ad2b7e532296fde314e8157475b667b18ae82a (patch) | |
tree | dde64db86c49ae27f280d5c1d21bc6604aeb22b5 /src/datavisualization/engine/surface3dcontroller.cpp | |
parent | 61c84e2d9c46de40d22f6fafbdd23d4015025516 (diff) |
Multiseries support for surface
Multiseries support for item and row changes.
Task-number: QTRD-2767
Change-Id: I5702989e7f59913481a2ca888e402effa22a4221
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/surface3dcontroller.cpp')
-rw-r--r-- | src/datavisualization/engine/surface3dcontroller.cpp | 73 |
1 files changed, 36 insertions, 37 deletions
diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp index 966a9d15..48100c05 100644 --- a/src/datavisualization/engine/surface3dcontroller.cpp +++ b/src/datavisualization/engine/surface3dcontroller.cpp @@ -322,56 +322,55 @@ void Surface3DController::handleRowsChanged(int startIndex, int count) m_changedRows.reserve(sender->rowCount()); QSurface3DSeries *series = sender->series(); - if (series->isVisible()) { - // Change is for the visible series, put the change to queue - int oldChangeCount = m_changedRows.size(); - for (int i = 0; i < count; i++) { - bool newItem = true; - int candidate = startIndex + i; - for (int i = 0; i < oldChangeCount; i++) { - if (m_changedRows.at(i) == candidate) { - newItem = false; - break; - } + int oldChangeCount = m_changedRows.size(); + for (int i = 0; i < count; i++) { + bool newItem = true; + int candidate = startIndex + i; + for (int i = 0; i < oldChangeCount; i++) { + if (m_changedRows.at(i).row == candidate && + series == m_changedRows.at(i).series) { + newItem = false; + break; } - if (newItem) - m_changedRows.append(candidate); } - if (m_changedRows.size()) { - m_changeTracker.rowsChanged = true; - - adjustValueAxisRange(); - // Clear selection unless still valid - setSelectedPoint(m_selectedPoint, m_selectedSeries, false); - emitNeedRender(); + if (newItem) { + ChangeRow newItem = {series, candidate}; + m_changedRows.append(newItem); } } + if (m_changedRows.size()) { + m_changeTracker.rowsChanged = true; + + adjustValueAxisRange(); + // Clear selection unless still valid + setSelectedPoint(m_selectedPoint, m_selectedSeries, false); + emitNeedRender(); + } } void Surface3DController::handleItemChanged(int rowIndex, int columnIndex) { QSurfaceDataProxy *sender = static_cast<QSurfaceDataProxy *>(QObject::sender()); QSurface3DSeries *series = sender->series(); - if (series->isVisible()) { - // Change is for the visible series, put the change to queue - bool newItem = true; - QPoint candidate(columnIndex, rowIndex); - foreach (QPoint item, m_changedItems) { - if (item == candidate) { - newItem = false; - break; - } - } - if (newItem) { - m_changedItems.append(candidate); - m_changeTracker.itemChanged = true; - adjustValueAxisRange(); - // Clear selection unless still valid - setSelectedPoint(m_selectedPoint, m_selectedSeries, false); - emitNeedRender(); + bool newItem = true; + QPoint candidate(columnIndex, rowIndex); + foreach (ChangeItem item, m_changedItems) { + if (item.point == candidate && item.series == series) { + newItem = false; + break; } } + if (newItem) { + ChangeItem newItem = {series, candidate}; + m_changedItems.append(newItem); + m_changeTracker.itemChanged = true; + + adjustValueAxisRange(); + // Clear selection unless still valid + setSelectedPoint(m_selectedPoint, m_selectedSeries, false); + emitNeedRender(); + } } void Surface3DController::handleRowsAdded(int startIndex, int count) |