diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-12-03 14:00:23 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-12-03 14:06:59 +0200 |
commit | 344870fb79e647b87aa79b9433eef8237c901e10 (patch) | |
tree | f0ccaa5991d9f0304bc6f6f91ce3ffd45232384d /src/datavisualization/data | |
parent | 2af35db1a112c49991a80f48e3cd8d8814deb321 (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.cpp | 2 | ||||
-rw-r--r-- | src/datavisualization/data/qsurfacedataproxy.cpp | 17 | ||||
-rw-r--r-- | src/datavisualization/data/qsurfacedataproxy.h | 3 | ||||
-rw-r--r-- | src/datavisualization/data/qsurfacedataproxy_p.h | 1 |
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); |