summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc6
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc9
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h1
-rw-r--r--src/datavisualizationqml2/declarativescatter.cpp13
-rw-r--r--src/datavisualizationqml2/declarativescatter_p.h8
-rw-r--r--src/datavisualizationqml2/declarativesurface.cpp13
-rw-r--r--src/datavisualizationqml2/declarativesurface_p.h5
7 files changed, 53 insertions, 2 deletions
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
index e583a807..3d367a77 100644
--- a/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
@@ -103,3 +103,9 @@
\note Object needs to be in Wavefront obj format and include vertices, normals and UVs.
It also needs to be in triangles.
*/
+
+/*!
+ \qmlproperty int Scatter3D::selectedItemIndex
+ Selects an item in the \a index. Only one item can be selected at a time.
+ To clear selection, specify an illegal \a index, e.g. -1.
+ */
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
index c55b7ec1..b47408f2 100644
--- a/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
@@ -88,3 +88,12 @@
\qmlproperty ColorGradient Surface3D::gradient
The current surface gradient. Setting this property replaces the previous gradient.
*/
+
+/*!
+ \qmlproperty point Surface3D::selectedPoint
+
+ Selects a surface grid point in a \a position. The position is the (row, column) position in
+ the data array of the active data proxy.
+ Only one point can be selected at a time.
+ To clear selection, specify an illegal \a position, e.g. (-1, -1).
+ */
diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h
index f71d9ad3..16fe6d1f 100644
--- a/src/datavisualizationqml2/declarativebars_p.h
+++ b/src/datavisualizationqml2/declarativebars_p.h
@@ -58,7 +58,6 @@ class DeclarativeBars : public AbstractDeclarative
Q_PROPERTY(bool barSmoothingEnabled READ isBarSmoothingEnabled WRITE setBarSmoothingEnabled)
Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName)
Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged)
- Q_ENUMS(QtDataVisualization::QDataVis::MeshStyle)
public:
explicit DeclarativeBars(QQuickItem *parent = 0);
diff --git a/src/datavisualizationqml2/declarativescatter.cpp b/src/datavisualizationqml2/declarativescatter.cpp
index 346abec2..a2ef9369 100644
--- a/src/datavisualizationqml2/declarativescatter.cpp
+++ b/src/datavisualizationqml2/declarativescatter.cpp
@@ -41,6 +41,9 @@ DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
m_shared = new Scatter3DController(boundingRect().toRect());
setSharedController(m_shared);
m_shared->setActiveDataProxy(new QItemModelScatterDataProxy);
+
+ QObject::connect(m_shared, &Scatter3DController::selectedItemIndexChanged, this,
+ &DeclarativeScatter::selectedItemIndexChanged);
}
DeclarativeScatter::~DeclarativeScatter()
@@ -165,4 +168,14 @@ QString DeclarativeScatter::meshFileName() const
return m_shared->meshFileName();
}
+void DeclarativeScatter::setSelectedItemIndex(int index)
+{
+ m_shared->setSelectedItemIndex(index);
+}
+
+int DeclarativeScatter::selectedItemIndex() const
+{
+ return m_shared->selectedItemIndex();
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h
index cc16e770..922cf05e 100644
--- a/src/datavisualizationqml2/declarativescatter_p.h
+++ b/src/datavisualizationqml2/declarativescatter_p.h
@@ -53,7 +53,7 @@ class DeclarativeScatter : public AbstractDeclarative
Q_PROPERTY(bool objectSmoothingEnabled READ isObjectSmoothingEnabled WRITE setObjectSmoothingEnabled)
Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName)
Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
- Q_ENUMS(QtDataVisualization::QDataVis::MeshStyle)
+ Q_PROPERTY(int selectedItemIndex READ selectedItemIndex WRITE setSelectedItemIndex NOTIFY selectedItemIndexChanged)
public:
explicit DeclarativeScatter(QQuickItem *parent = 0);
@@ -80,6 +80,12 @@ public:
void setMeshFileName(const QString &objFileName);
QString meshFileName() const;
+ void setSelectedItemIndex(int index);
+ int selectedItemIndex() const;
+
+signals:
+ void selectedItemIndexChanged(int index);
+
protected:
Scatter3DController *m_shared;
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
diff --git a/src/datavisualizationqml2/declarativesurface.cpp b/src/datavisualizationqml2/declarativesurface.cpp
index 9ace6c55..a4cf1195 100644
--- a/src/datavisualizationqml2/declarativesurface.cpp
+++ b/src/datavisualizationqml2/declarativesurface.cpp
@@ -46,6 +46,9 @@ DeclarativeSurface::DeclarativeSurface(QQuickItem *parent)
QItemModelSurfaceDataProxy *proxy = new QItemModelSurfaceDataProxy;
m_shared->setActiveDataProxy(proxy);
+
+ QObject::connect(m_shared, &Surface3DController::selectedPointChanged, this,
+ &DeclarativeSurface::selectedPointChanged);
}
DeclarativeSurface::~DeclarativeSurface()
@@ -167,6 +170,16 @@ ColorGradient *DeclarativeSurface::gradient() const
return m_gradient;
}
+void DeclarativeSurface::setSelectedPoint(const QPointF &position)
+{
+ m_shared->setSelectedPoint(position.toPoint());
+}
+
+QPointF DeclarativeSurface::selectedPoint() const
+{
+ return QPointF(m_shared->selectedPoint());
+}
+
void DeclarativeSurface::setControllerGradient(const ColorGradient &gradient)
{
QLinearGradient newGradient;
diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h
index 6e35b3b3..3d911f43 100644
--- a/src/datavisualizationqml2/declarativesurface_p.h
+++ b/src/datavisualizationqml2/declarativesurface_p.h
@@ -54,6 +54,7 @@ class DeclarativeSurface : public AbstractDeclarative
Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled NOTIFY smoothSurfaceEnabledChanged)
Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled)
Q_PROPERTY(ColorGradient *gradient READ gradient WRITE setGradient)
+ Q_PROPERTY(QPointF selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged)
public:
explicit DeclarativeSurface(QQuickItem *parent = 0);
@@ -78,8 +79,12 @@ public:
void setGradient(ColorGradient *gradient);
ColorGradient *gradient() const;
+ void setSelectedPoint(const QPointF &position);
+ QPointF selectedPoint() const;
+
signals:
void smoothSurfaceEnabledChanged(bool enabled);
+ void selectedPointChanged(QPoint position);
protected:
void handleGradientUpdate();