summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3dcontroller.cpp
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2014-02-10 10:26:30 +0200
committerMika Salmela <mika.salmela@digia.com>2014-02-10 10:30:49 +0200
commit51ad2b7e532296fde314e8157475b667b18ae82a (patch)
treedde64db86c49ae27f280d5c1d21bc6604aeb22b5 /src/datavisualization/engine/surface3dcontroller.cpp
parent61c84e2d9c46de40d22f6fafbdd23d4015025516 (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.cpp73
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)