summaryrefslogtreecommitdiffstats
path: root/src/datavisualization
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-09 09:55:52 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-09 11:02:27 +0200
commit450dc3e6d74ffe93a761a5e2491458935ecac7b7 (patch)
tree99184e6eddb3d8529733de2b273e93b8b96bb73b /src/datavisualization
parent466c03c4e560b875121090bf883d9aefa9d44616 (diff)
Make active axes properties in C++
Also provide axis changed signals both C++ and QML. Some other minor fixes, too. Task-number: QTRD-2669 Change-Id: Ib797bffd6720382cf26359a9059e1809efdf58da Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization')
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc6
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc6
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc6
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp18
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h3
-rw-r--r--src/datavisualization/engine/q3dbars.cpp36
-rw-r--r--src/datavisualization/engine/q3dbars.h6
-rw-r--r--src/datavisualization/engine/q3dbars_p.h4
-rw-r--r--src/datavisualization/engine/q3dscatter.cpp33
-rw-r--r--src/datavisualization/engine/q3dscatter.h9
-rw-r--r--src/datavisualization/engine/q3dscatter_p.h4
-rw-r--r--src/datavisualization/engine/q3dsurface.cpp27
-rw-r--r--src/datavisualization/engine/q3dsurface.h9
-rw-r--r--src/datavisualization/engine/q3dsurface_p.h4
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.cpp57
-rw-r--r--src/datavisualization/engine/qabstract3dgraph_p.h9
16 files changed, 174 insertions, 63 deletions
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc
index edeb5530..7bd30867 100644
--- a/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc
@@ -46,7 +46,7 @@
/*!
* \qmlproperty CategoryAxis3D Bars3D::rowAxis
- * A user-defined row axis.
+ * The active row axis.
*
* If an axis is not given, a temporary default axis with no labels is created.
* This temporary axis is destroyed if another axis is explicitly set to same orientation.
@@ -54,7 +54,7 @@
/*!
* \qmlproperty ValueAxis3D Bars3D::valueAxis
- * A user-defined value axis.
+ * The active value axis.
*
* If an axis is not given, a temporary default axis with no labels and automatically adjusting
* range is created.
@@ -63,7 +63,7 @@
/*!
* \qmlproperty CategoryAxis3D Bars3D::columnAxis
- * A user-defined column axis.
+ * The active column axis.
*
* If an axis is not given, a temporary default axis with no labels is created.
* This temporary axis is destroyed if another axis is explicitly set to same orientation.
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
index 0a8e1674..6d113654 100644
--- a/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
@@ -46,7 +46,7 @@
/*!
\qmlproperty ValueAxis3D Scatter3D::axisX
- A user-defined X axis.
+ The active X axis.
If an axis is not given, a temporary default axis with no labels and automatically adjusting
range is created.
@@ -55,7 +55,7 @@
/*!
\qmlproperty ValueAxis3D Scatter3D::axisY
- A user-defined Y axis.
+ The active Y axis.
If an axis is not given, a temporary default axis with no labels and automatically adjusting
range is created.
@@ -64,7 +64,7 @@
/*!
\qmlproperty ValueAxis3D Scatter3D::axisZ
- A user-defined Z axis.
+ The active Z axis.
If an axis is not given, a temporary default axis with no labels and automatically adjusting
range is created.
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
index b28d30a7..d2a3a71b 100644
--- a/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
@@ -46,7 +46,7 @@
/*!
\qmlproperty ValueAxis3D Surface3D::axisX
- A user-defined X axis.
+ The active X axis.
If an axis is not given, a temporary default axis with no labels and automatically adjusting
range is created.
@@ -55,7 +55,7 @@
/*!
\qmlproperty ValueAxis3D Surface3D::axisY
- A user-defined Y axis.
+ The active Y axis.
If an axis is not given, a temporary default axis with no labels and automatically adjusting
range is created.
@@ -64,7 +64,7 @@
/*!
\qmlproperty ValueAxis3D Surface3D::axisZ
- A user-defined Z axis.
+ The active Z axis.
If an axis is not given, a temporary default axis with no labels and automatically adjusting
range is created.
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 43d7a6d5..14585679 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -464,7 +464,11 @@ void Abstract3DController::handleThemeTypeChanged(Q3DTheme::Theme theme)
void Abstract3DController::setAxisX(QAbstract3DAxis *axis)
{
- setAxisHelper(QAbstract3DAxis::AxisOrientationX, axis, &m_axisX);
+ // Setting null axis will always create new default axis
+ if (!axis || axis != m_axisX) {
+ setAxisHelper(QAbstract3DAxis::AxisOrientationX, axis, &m_axisX);
+ emit axisXChanged(m_axisX);
+ }
}
QAbstract3DAxis *Abstract3DController::axisX()
@@ -474,7 +478,11 @@ QAbstract3DAxis *Abstract3DController::axisX()
void Abstract3DController::setAxisY(QAbstract3DAxis *axis)
{
- setAxisHelper(QAbstract3DAxis::AxisOrientationY, axis, &m_axisY);
+ // Setting null axis will always create new default axis
+ if (!axis || axis != m_axisY) {
+ setAxisHelper(QAbstract3DAxis::AxisOrientationY, axis, &m_axisY);
+ emit axisYChanged(m_axisY);
+ }
}
QAbstract3DAxis *Abstract3DController::axisY()
@@ -484,7 +492,11 @@ QAbstract3DAxis *Abstract3DController::axisY()
void Abstract3DController::setAxisZ(QAbstract3DAxis *axis)
{
- setAxisHelper(QAbstract3DAxis::AxisOrientationZ, axis, &m_axisZ);
+ // Setting null axis will always create new default axis
+ if (!axis || axis != m_axisZ) {
+ setAxisHelper(QAbstract3DAxis::AxisOrientationZ, axis, &m_axisZ);
+ emit axisZChanged(m_axisZ);
+ }
}
QAbstract3DAxis *Abstract3DController::axisZ()
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h
index 1e64d05a..0f951e5a 100644
--- a/src/datavisualization/engine/abstract3dcontroller_p.h
+++ b/src/datavisualization/engine/abstract3dcontroller_p.h
@@ -261,6 +261,9 @@ signals:
void activeThemeChanged(Q3DTheme *activeTheme);
void selectionModeChanged(QDataVis::SelectionFlags mode);
void needRender();
+ void axisXChanged(QAbstract3DAxis *axis);
+ void axisYChanged(QAbstract3DAxis *axis);
+ void axisZChanged(QAbstract3DAxis *axis);
protected:
virtual QAbstract3DAxis *createDefaultAxis(QAbstract3DAxis::AxisOrientation orientation);
diff --git a/src/datavisualization/engine/q3dbars.cpp b/src/datavisualization/engine/q3dbars.cpp
index d9e265a1..51ba8dbf 100644
--- a/src/datavisualization/engine/q3dbars.cpp
+++ b/src/datavisualization/engine/q3dbars.cpp
@@ -200,7 +200,9 @@ bool Q3DBars::isBarSpacingRelative()
}
/*!
- * Sets a user-defined row \a axis. Implicitly calls addAxis() to transfer ownership of
+ * \property Q3DBars::rowAxis
+ *
+ * The active row \a axis. Implicitly calls addAxis() to transfer ownership of
* the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels is created.
@@ -213,16 +215,15 @@ void Q3DBars::setRowAxis(QCategory3DAxis *axis)
dptr()->m_shared->setAxisZ(axis);
}
-/*!
- * \return category axis for rows.
- */
QCategory3DAxis *Q3DBars::rowAxis() const
{
return static_cast<QCategory3DAxis *>(dptrc()->m_shared->axisZ());
}
/*!
- * Sets a user-defined column \a axis. Implicitly calls addAxis() to transfer ownership of
+ * \property Q3DBars::columnAxis
+ *
+ * The active column \a axis. Implicitly calls addAxis() to transfer ownership of
* the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels is created.
@@ -235,16 +236,15 @@ void Q3DBars::setColumnAxis(QCategory3DAxis *axis)
dptr()->m_shared->setAxisX(axis);
}
-/*!
- * \return category axis for columns.
- */
QCategory3DAxis *Q3DBars::columnAxis() const
{
return static_cast<QCategory3DAxis *>(dptrc()->m_shared->axisX());
}
/*!
- * Sets a user-defined value \a axis (the Y-axis). Implicitly calls addAxis() to transfer ownership
+ * \property Q3DBars::valueAxis
+ *
+ * The active value \a axis (the Y-axis). Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -258,9 +258,6 @@ void Q3DBars::setValueAxis(QValue3DAxis *axis)
dptr()->m_shared->setAxisY(axis);
}
-/*!
- * \return used value axis (Y-axis).
- */
QValue3DAxis *Q3DBars::valueAxis() const
{
return static_cast<QValue3DAxis *>(dptrc()->m_shared->axisY());
@@ -320,6 +317,21 @@ Q3DBarsPrivate::~Q3DBarsPrivate()
{
}
+void Q3DBarsPrivate::handleAxisXChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->columnAxisChanged(static_cast<QCategory3DAxis *>(axis));
+}
+
+void Q3DBarsPrivate::handleAxisYChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->valueAxisChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void Q3DBarsPrivate::handleAxisZChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->rowAxisChanged(static_cast<QCategory3DAxis *>(axis));
+}
+
Q3DBars *Q3DBarsPrivate::qptr()
{
return static_cast<Q3DBars *>(q_ptr);
diff --git a/src/datavisualization/engine/q3dbars.h b/src/datavisualization/engine/q3dbars.h
index 80cd1ba4..16c16e93 100644
--- a/src/datavisualization/engine/q3dbars.h
+++ b/src/datavisualization/engine/q3dbars.h
@@ -38,6 +38,9 @@ class QT_DATAVISUALIZATION_EXPORT Q3DBars : public QAbstract3DGraph
Q_PROPERTY(float barThickness READ barThickness WRITE setBarThickness NOTIFY barThicknessChanged)
Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing NOTIFY barSpacingChanged)
Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative NOTIFY barSpacingRelativeChanged)
+ Q_PROPERTY(QCategory3DAxis *rowAxis READ rowAxis WRITE setRowAxis NOTIFY rowAxisChanged)
+ Q_PROPERTY(QCategory3DAxis *columnAxis READ columnAxis WRITE setColumnAxis NOTIFY columnAxisChanged)
+ Q_PROPERTY(QValue3DAxis *valueAxis READ valueAxis WRITE setValueAxis NOTIFY valueAxisChanged)
public:
explicit Q3DBars(QWindow *parent = 0);
@@ -70,6 +73,9 @@ signals:
void barThicknessChanged(float thicknessRatio);
void barSpacingChanged(QSizeF spacing);
void barSpacingRelativeChanged(bool relative);
+ void rowAxisChanged(QCategory3DAxis *axis);
+ void columnAxisChanged(QCategory3DAxis *axis);
+ void valueAxisChanged(QValue3DAxis *axis);
private:
Q3DBarsPrivate *dptr();
diff --git a/src/datavisualization/engine/q3dbars_p.h b/src/datavisualization/engine/q3dbars_p.h
index 6bb90b40..37ae3d70 100644
--- a/src/datavisualization/engine/q3dbars_p.h
+++ b/src/datavisualization/engine/q3dbars_p.h
@@ -44,6 +44,10 @@ public:
Q3DBarsPrivate(Q3DBars *q);
~Q3DBarsPrivate();
+ void handleAxisXChanged(QAbstract3DAxis *axis);
+ void handleAxisYChanged(QAbstract3DAxis *axis);
+ void handleAxisZChanged(QAbstract3DAxis *axis);
+
Q3DBars *qptr();
Bars3DController *m_shared;
diff --git a/src/datavisualization/engine/q3dscatter.cpp b/src/datavisualization/engine/q3dscatter.cpp
index c71ce795..9f4f1af8 100644
--- a/src/datavisualization/engine/q3dscatter.cpp
+++ b/src/datavisualization/engine/q3dscatter.cpp
@@ -132,7 +132,9 @@ const Q3DScatterPrivate *Q3DScatter::dptrc() const
}
/*!
- * Sets a user-defined X-axis. Implicitly calls addAxis() to transfer ownership
+ * \property Q3DScatter::axisX
+ *
+ * The active X-axis. Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -146,16 +148,15 @@ void Q3DScatter::setAxisX(QValue3DAxis *axis)
dptr()->m_shared->setAxisX(axis);
}
-/*!
- * \return used X-axis.
- */
QValue3DAxis *Q3DScatter::axisX() const
{
return static_cast<QValue3DAxis *>(dptrc()->m_shared->axisX());
}
/*!
- * Sets a user-defined Y-axis. Implicitly calls addAxis() to transfer ownership
+ * \property Q3DScatter::axisY
+ *
+ * The active Y-axis. Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -169,16 +170,15 @@ void Q3DScatter::setAxisY(QValue3DAxis *axis)
dptr()->m_shared->setAxisY(axis);
}
-/*!
- * \return used Y-axis.
- */
QValue3DAxis *Q3DScatter::axisY() const
{
return static_cast<QValue3DAxis *>(dptrc()->m_shared->axisY());
}
/*!
- * Sets a user-defined Z-axis. Implicitly calls addAxis() to transfer ownership
+ * \property Q3DScatter::axisZ
+ *
+ * The active Z-axis. Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -249,6 +249,21 @@ Q3DScatterPrivate::~Q3DScatterPrivate()
{
}
+void Q3DScatterPrivate::handleAxisXChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->axisXChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void Q3DScatterPrivate::handleAxisYChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->axisYChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void Q3DScatterPrivate::handleAxisZChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->axisZChanged(static_cast<QValue3DAxis *>(axis));
+}
+
Q3DScatter *Q3DScatterPrivate::qptr()
{
return static_cast<Q3DScatter *>(q_ptr);
diff --git a/src/datavisualization/engine/q3dscatter.h b/src/datavisualization/engine/q3dscatter.h
index 8a94864e..cdea32fd 100644
--- a/src/datavisualization/engine/q3dscatter.h
+++ b/src/datavisualization/engine/q3dscatter.h
@@ -35,6 +35,10 @@ class QScatter3DSeries;
class QT_DATAVISUALIZATION_EXPORT Q3DScatter : public QAbstract3DGraph
{
Q_OBJECT
+ Q_PROPERTY(QValue3DAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
+ Q_PROPERTY(QValue3DAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
+ Q_PROPERTY(QValue3DAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
+
public:
explicit Q3DScatter(QWindow *parent = 0);
virtual ~Q3DScatter();
@@ -53,6 +57,11 @@ public:
void releaseAxis(QValue3DAxis *axis);
QList<QValue3DAxis *> axes() const;
+signals:
+ void axisXChanged(QValue3DAxis *axis);
+ void axisYChanged(QValue3DAxis *axis);
+ void axisZChanged(QValue3DAxis *axis);
+
private:
Q3DScatterPrivate *dptr();
const Q3DScatterPrivate *dptrc() const;
diff --git a/src/datavisualization/engine/q3dscatter_p.h b/src/datavisualization/engine/q3dscatter_p.h
index e8140c04..ab547e52 100644
--- a/src/datavisualization/engine/q3dscatter_p.h
+++ b/src/datavisualization/engine/q3dscatter_p.h
@@ -44,6 +44,10 @@ public:
Q3DScatterPrivate(Q3DScatter *q);
~Q3DScatterPrivate();
+ void handleAxisXChanged(QAbstract3DAxis *axis);
+ void handleAxisYChanged(QAbstract3DAxis *axis);
+ void handleAxisZChanged(QAbstract3DAxis *axis);
+
Q3DScatter *qptr();
Scatter3DController *m_shared;
diff --git a/src/datavisualization/engine/q3dsurface.cpp b/src/datavisualization/engine/q3dsurface.cpp
index 0b09aba4..ad236220 100644
--- a/src/datavisualization/engine/q3dsurface.cpp
+++ b/src/datavisualization/engine/q3dsurface.cpp
@@ -147,7 +147,9 @@ const Q3DSurfacePrivate *Q3DSurface::dptrc() const
}
/*!
- * Sets a user-defined X-axis. Implicitly calls addAxis() to transfer ownership
+ * \property Q3DSurface::axisX
+ *
+ * The active X-axis. Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -170,7 +172,9 @@ QValue3DAxis *Q3DSurface::axisX() const
}
/*!
- * Sets a user-defined Y-axis. Implicitly calls addAxis() to transfer ownership
+ * \property Q3DSurface::axisY
+ *
+ * The active Y-axis. Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -193,7 +197,9 @@ QValue3DAxis *Q3DSurface::axisY() const
}
/*!
- * Sets a user-defined Z-axis. Implicitly calls addAxis() to transfer ownership
+ * \property Q3DSurface::axisZ
+ *
+ * The active Z-axis. Implicitly calls addAxis() to transfer ownership
* of the \a axis to this graph.
*
* If the \a axis is null, a temporary default axis with no labels and automatically adjusting
@@ -266,6 +272,21 @@ Q3DSurfacePrivate::~Q3DSurfacePrivate()
{
}
+void Q3DSurfacePrivate::handleAxisXChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->axisXChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void Q3DSurfacePrivate::handleAxisYChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->axisYChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void Q3DSurfacePrivate::handleAxisZChanged(QAbstract3DAxis *axis)
+{
+ emit qptr()->axisZChanged(static_cast<QValue3DAxis *>(axis));
+}
+
Q3DSurface *Q3DSurfacePrivate::qptr()
{
return static_cast<Q3DSurface *>(q_ptr);
diff --git a/src/datavisualization/engine/q3dsurface.h b/src/datavisualization/engine/q3dsurface.h
index 4d6bcf5e..fd09e600 100644
--- a/src/datavisualization/engine/q3dsurface.h
+++ b/src/datavisualization/engine/q3dsurface.h
@@ -33,6 +33,10 @@ class QSurface3DSeries;
class QT_DATAVISUALIZATION_EXPORT Q3DSurface : public QAbstract3DGraph
{
Q_OBJECT
+ Q_PROPERTY(QValue3DAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
+ Q_PROPERTY(QValue3DAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
+ Q_PROPERTY(QValue3DAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
+
public:
explicit Q3DSurface(QWindow *parent = 0);
virtual ~Q3DSurface();
@@ -52,6 +56,11 @@ public:
void releaseAxis(QValue3DAxis *axis);
QList<QValue3DAxis *> axes() const;
+signals:
+ void axisXChanged(QValue3DAxis *axis);
+ void axisYChanged(QValue3DAxis *axis);
+ void axisZChanged(QValue3DAxis *axis);
+
private:
Q3DSurfacePrivate *dptr();
const Q3DSurfacePrivate *dptrc() const;
diff --git a/src/datavisualization/engine/q3dsurface_p.h b/src/datavisualization/engine/q3dsurface_p.h
index b1284453..0cbb6997 100644
--- a/src/datavisualization/engine/q3dsurface_p.h
+++ b/src/datavisualization/engine/q3dsurface_p.h
@@ -46,6 +46,10 @@ public:
Q3DSurfacePrivate(Q3DSurface *q);
~Q3DSurfacePrivate();
+ void handleAxisXChanged(QAbstract3DAxis *axis);
+ void handleAxisYChanged(QAbstract3DAxis *axis);
+ void handleAxisZChanged(QAbstract3DAxis *axis);
+
Q3DSurface *qptr();
Surface3DController *m_shared;
diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp
index 3a7fc84b..f17319d5 100644
--- a/src/datavisualization/engine/qabstract3dgraph.cpp
+++ b/src/datavisualization/engine/qabstract3dgraph.cpp
@@ -367,6 +367,38 @@ QAbstract3DGraphPrivate::~QAbstract3DGraphPrivate()
delete m_visualController;
}
+void QAbstract3DGraphPrivate::setVisualController(Abstract3DController *controller)
+{
+ m_visualController = controller;
+
+ QObject::connect(m_visualController, &Abstract3DController::activeInputHandlerChanged, q_ptr,
+ &QAbstract3DGraph::activeInputHandlerChanged);
+ QObject::connect(m_visualController, &Abstract3DController::activeThemeChanged, q_ptr,
+ &QAbstract3DGraph::activeThemeChanged);
+ QObject::connect(m_visualController, &Abstract3DController::selectionModeChanged, q_ptr,
+ &QAbstract3DGraph::selectionModeChanged);
+ QObject::connect(m_visualController, &Abstract3DController::shadowQualityChanged, q_ptr,
+ &QAbstract3DGraph::shadowQualityChanged);
+ QObject::connect(m_visualController, &Abstract3DController::needRender, this,
+ &QAbstract3DGraphPrivate::renderLater);
+
+ QObject::connect(m_visualController, &Abstract3DController::axisXChanged, this,
+ &QAbstract3DGraphPrivate::handleAxisXChanged);
+ QObject::connect(m_visualController, &Abstract3DController::axisYChanged, this,
+ &QAbstract3DGraphPrivate::handleAxisYChanged);
+ QObject::connect(m_visualController, &Abstract3DController::axisZChanged, this,
+ &QAbstract3DGraphPrivate::handleAxisZChanged);
+}
+
+void QAbstract3DGraphPrivate::handleDevicePixelRatioChange()
+{
+ if (q_ptr->devicePixelRatio() == m_devicePixelRatio || !m_visualController)
+ return;
+
+ m_devicePixelRatio = q_ptr->devicePixelRatio();
+ m_visualController->scene()->setDevicePixelRatio(m_devicePixelRatio);
+}
+
void QAbstract3DGraphPrivate::render()
{
handleDevicePixelRatioChange();
@@ -396,29 +428,4 @@ void QAbstract3DGraphPrivate::renderNow()
m_context->swapBuffers(q_ptr);
}
-void QAbstract3DGraphPrivate::setVisualController(Abstract3DController *controller)
-{
- m_visualController = controller;
-
- QObject::connect(m_visualController, &Abstract3DController::activeInputHandlerChanged, q_ptr,
- &QAbstract3DGraph::activeInputHandlerChanged);
- QObject::connect(m_visualController, &Abstract3DController::activeThemeChanged, q_ptr,
- &QAbstract3DGraph::activeThemeChanged);
- QObject::connect(m_visualController, &Abstract3DController::selectionModeChanged, q_ptr,
- &QAbstract3DGraph::selectionModeChanged);
- QObject::connect(m_visualController, &Abstract3DController::shadowQualityChanged, q_ptr,
- &QAbstract3DGraph::shadowQualityChanged);
- QObject::connect(m_visualController, &Abstract3DController::needRender, this,
- &QAbstract3DGraphPrivate::renderLater);
-}
-
-void QAbstract3DGraphPrivate::handleDevicePixelRatioChange()
-{
- if (q_ptr->devicePixelRatio() == m_devicePixelRatio || !m_visualController)
- return;
-
- m_devicePixelRatio = q_ptr->devicePixelRatio();
- m_visualController->scene()->setDevicePixelRatio(m_devicePixelRatio);
-}
-
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualization/engine/qabstract3dgraph_p.h b/src/datavisualization/engine/qabstract3dgraph_p.h
index 18e88c92..e1ccab92 100644
--- a/src/datavisualization/engine/qabstract3dgraph_p.h
+++ b/src/datavisualization/engine/qabstract3dgraph_p.h
@@ -40,6 +40,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
class QAbstract3DGraph;
class Abstract3DController;
+class QAbstract3DAxis;
class QAbstract3DGraphPrivate : public QObject
{
@@ -48,15 +49,19 @@ public:
QAbstract3DGraphPrivate(QAbstract3DGraph *q);
~QAbstract3DGraphPrivate();
- void render();
-
void setVisualController(Abstract3DController *controller);
void handleDevicePixelRatioChange();
+ void render();
+
public slots:
void renderLater();
void renderNow();
+ virtual void handleAxisXChanged(QAbstract3DAxis *axis) = 0;
+ virtual void handleAxisYChanged(QAbstract3DAxis *axis) = 0;
+ virtual void handleAxisZChanged(QAbstract3DAxis *axis) = 0;
+
public:
QAbstract3DGraph *q_ptr;