From 79f3a4d7aa2fcbdc5df133ede88a367aa5870bd3 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 4 Feb 2014 14:48:34 +0200 Subject: Add qmloscilloscope example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +Fix itemAt() in surface proxy +Add itemAt(QPoint) in bar and surface proxies +Misc fixes to other examples Task-number: QTRD-2816 Change-Id: I5e06cfce98f74719a20885e3ca5a1e6fefb23a9c Reviewed-by: Tomi Korpipää --- src/datavisualization/data/qbardataproxy.cpp | 10 ++++++++ src/datavisualization/data/qbardataproxy.h | 1 + src/datavisualization/data/qsurface3dseries.cpp | 2 +- src/datavisualization/data/qsurfacedataproxy.cpp | 32 +++++++++++++++++------- src/datavisualization/data/qsurfacedataproxy.h | 3 ++- 5 files changed, 37 insertions(+), 11 deletions(-) (limited to 'src/datavisualization/data') diff --git a/src/datavisualization/data/qbardataproxy.cpp b/src/datavisualization/data/qbardataproxy.cpp index a26e446e..4247e963 100644 --- a/src/datavisualization/data/qbardataproxy.cpp +++ b/src/datavisualization/data/qbardataproxy.cpp @@ -426,6 +426,16 @@ const QBarDataItem *QBarDataProxy::itemAt(int rowIndex, int columnIndex) const return &dataRow.at(columnIndex); } +/*! + * \return pointer to the item at \a position. The X-value of \a position indicates the row + * and the Y-value indicates the column. The item is guaranteed to be valid only + * until the next call that modifies data. + */ +const QBarDataItem *QBarDataProxy::itemAt(const QPoint &position) const +{ + return itemAt(position.x(), position.y()); +} + /*! * \internal */ diff --git a/src/datavisualization/data/qbardataproxy.h b/src/datavisualization/data/qbardataproxy.h index 0ad71365..780897e8 100644 --- a/src/datavisualization/data/qbardataproxy.h +++ b/src/datavisualization/data/qbardataproxy.h @@ -58,6 +58,7 @@ public: const QBarDataArray *array() const; const QBarDataRow *rowAt(int rowIndex) const; const QBarDataItem *itemAt(int rowIndex, int columnIndex) const; + const QBarDataItem *itemAt(const QPoint &position) const; void resetArray(); void resetArray(QBarDataArray *newArray); diff --git a/src/datavisualization/data/qsurface3dseries.cpp b/src/datavisualization/data/qsurface3dseries.cpp index e5f06cc6..b7e15014 100644 --- a/src/datavisualization/data/qsurface3dseries.cpp +++ b/src/datavisualization/data/qsurface3dseries.cpp @@ -221,7 +221,7 @@ void QSurface3DSeries::setSelectedPoint(const QPoint &position) { // Don't do this in private to avoid loops, as that is used for callback from controller. if (d_ptr->m_controller) - static_cast(d_ptr->m_controller)->setSelectedPoint(position, this); + static_cast(d_ptr->m_controller)->setSelectedPoint(position, this, true); else dptr()->setSelectedPoint(position); } diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp index 43ce40eb..b19f1f0a 100644 --- a/src/datavisualization/data/qsurfacedataproxy.cpp +++ b/src/datavisualization/data/qsurfacedataproxy.cpp @@ -258,6 +258,29 @@ const QSurfaceDataArray *QSurfaceDataProxy::array() const return dptrc()->m_dataArray; } +/*! + * \return pointer to the item at \a rowIndex, \a columnIndex. It is guaranteed to be valid only + * until the next call that modifies data. + */ +const QSurfaceDataItem *QSurfaceDataProxy::itemAt(int rowIndex, int columnIndex) const +{ + const QSurfaceDataArray &dataArray = *dptrc()->m_dataArray; + Q_ASSERT(rowIndex >= 0 && rowIndex < dataArray.size()); + const QSurfaceDataRow &dataRow = *dataArray[rowIndex]; + Q_ASSERT(columnIndex >= 0 && columnIndex < dataRow.size()); + return &dataRow.at(columnIndex); +} + +/*! + * \return pointer to the item at \a position. The X-value of \a position indicates the row + * and the Y-value indicates the column. The item is guaranteed to be valid only + * until the next call that modifies data. + */ +const QSurfaceDataItem *QSurfaceDataProxy::itemAt(const QPoint &position) const +{ + return itemAt(position.x(), position.y()); +} + /*! * \property QSurfaceDataProxy::rowCount * @@ -281,15 +304,6 @@ int QSurfaceDataProxy::columnCount() const return 0; } -/*! - * \return pointer to the item at \a index. It is guaranteed to be valid only until the next call that - * modifies data. - */ -const QSurfaceDataItem *QSurfaceDataProxy::itemAt(int index) const -{ - return &dptrc()->m_dataArray->at(index)->at(2); -} - /*! * \internal */ diff --git a/src/datavisualization/data/qsurfacedataproxy.h b/src/datavisualization/data/qsurfacedataproxy.h index 0933faf6..9cfe3b77 100644 --- a/src/datavisualization/data/qsurfacedataproxy.h +++ b/src/datavisualization/data/qsurfacedataproxy.h @@ -49,7 +49,8 @@ public: int rowCount() const; int columnCount() const; const QSurfaceDataArray *array() const; - const QSurfaceDataItem *itemAt(int index) const; + const QSurfaceDataItem *itemAt(int rowIndex, int columnIndex) const; + const QSurfaceDataItem *itemAt(const QPoint &position) const; void resetArray(QSurfaceDataArray *newArray); -- cgit v1.2.3