summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-12-03 14:00:23 +0200
committerMika Salmela <mika.salmela@digia.com>2013-12-03 14:06:59 +0200
commit344870fb79e647b87aa79b9433eef8237c901e10 (patch)
treef0ccaa5991d9f0304bc6f6f91ce3ffd45232384d /src/datavisualization/data
parent2af35db1a112c49991a80f48e3cd8d8814deb321 (diff)
Better proxy API for surface
Part 2, item change. More is on the way. Change-Id: Ic41f3a90b5a47502b741391ace990117ef2eaf80 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r--src/datavisualization/data/qsurface3dseries.cpp2
-rw-r--r--src/datavisualization/data/qsurfacedataproxy.cpp17
-rw-r--r--src/datavisualization/data/qsurfacedataproxy.h3
-rw-r--r--src/datavisualization/data/qsurfacedataproxy_p.h1
4 files changed, 23 insertions, 0 deletions
diff --git a/src/datavisualization/data/qsurface3dseries.cpp b/src/datavisualization/data/qsurface3dseries.cpp
index 5a47a6e4..deb12f44 100644
--- a/src/datavisualization/data/qsurface3dseries.cpp
+++ b/src/datavisualization/data/qsurface3dseries.cpp
@@ -332,6 +332,8 @@ void QSurface3DSeriesPrivate::connectControllerAndProxy(Abstract3DController *ne
&Surface3DController::handleArrayReset);
QObject::connect(surfaceDataProxy, &QSurfaceDataProxy::rowsChanged, controller,
&Surface3DController::handleRowsChanged);
+ QObject::connect(surfaceDataProxy, &QSurfaceDataProxy::itemChanged, controller,
+ &Surface3DController::handleItemChanged);
}
}
diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp
index aba2e288..4c6c85f7 100644
--- a/src/datavisualization/data/qsurfacedataproxy.cpp
+++ b/src/datavisualization/data/qsurfacedataproxy.cpp
@@ -158,6 +158,15 @@ void QSurfaceDataProxy::setRows(int rowIndex, const QSurfaceDataArray &rows)
}
/*!
+ * Changes a single item at \a rowIndex, \a columnIndex to the \a item.
+ */
+void QSurfaceDataProxy::setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item)
+{
+ dptr()->setItem(rowIndex, columnIndex, item);
+ emit itemChanged(rowIndex, columnIndex);
+}
+
+/*!
* \return pointer to the data array.
*/
const QSurfaceDataArray *QSurfaceDataProxy::array() const
@@ -273,6 +282,14 @@ void QSurfaceDataProxyPrivate::setRows(int rowIndex, const QSurfaceDataArray &ro
}
}
+void QSurfaceDataProxyPrivate::setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item)
+{
+ Q_ASSERT(rowIndex >= 0 && rowIndex < m_dataArray->size());
+ QSurfaceDataRow &row = *(*m_dataArray)[rowIndex];
+ Q_ASSERT(columnIndex < row.size());
+ row[columnIndex] = item;
+}
+
QSurfaceDataProxy *QSurfaceDataProxyPrivate::qptr()
{
return static_cast<QSurfaceDataProxy *>(q_ptr);
diff --git a/src/datavisualization/data/qsurfacedataproxy.h b/src/datavisualization/data/qsurfacedataproxy.h
index d8808ded..4533f4c5 100644
--- a/src/datavisualization/data/qsurfacedataproxy.h
+++ b/src/datavisualization/data/qsurfacedataproxy.h
@@ -53,9 +53,12 @@ public:
void setRow(int rowIndex, QSurfaceDataRow *row);
void setRows(int rowIndex, const QSurfaceDataArray &rows);
+ void setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item);
+
signals:
void arrayReset();
void rowsChanged(int startIndex, int count);
+ void itemChanged(int rowIndex, int columnIndex);
void seriesChanged(QSurface3DSeries *series);
protected:
diff --git a/src/datavisualization/data/qsurfacedataproxy_p.h b/src/datavisualization/data/qsurfacedataproxy_p.h
index 38d92be1..3125a40a 100644
--- a/src/datavisualization/data/qsurfacedataproxy_p.h
+++ b/src/datavisualization/data/qsurfacedataproxy_p.h
@@ -46,6 +46,7 @@ public:
void resetArray(QSurfaceDataArray *newArray);
void setRow(int rowIndex, QSurfaceDataRow *row);
void setRows(int rowIndex, const QSurfaceDataArray &rows);
+ void setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item);
void limitValues(QVector3D &minValues, QVector3D &maxValues) const;
virtual void setSeries(QAbstract3DSeries *series);