diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-09 09:55:52 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-09 11:02:27 +0200 |
commit | 450dc3e6d74ffe93a761a5e2491458935ecac7b7 (patch) | |
tree | 99184e6eddb3d8529733de2b273e93b8b96bb73b /src/datavisualization | |
parent | 466c03c4e560b875121090bf883d9aefa9d44616 (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.qdoc | 6 | ||||
-rw-r--r-- | src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc | 6 | ||||
-rw-r--r-- | src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc | 6 | ||||
-rw-r--r-- | src/datavisualization/engine/abstract3dcontroller.cpp | 18 | ||||
-rw-r--r-- | src/datavisualization/engine/abstract3dcontroller_p.h | 3 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dbars.cpp | 36 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dbars.h | 6 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dbars_p.h | 4 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dscatter.cpp | 33 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dscatter.h | 9 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dscatter_p.h | 4 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dsurface.cpp | 27 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dsurface.h | 9 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dsurface_p.h | 4 | ||||
-rw-r--r-- | src/datavisualization/engine/qabstract3dgraph.cpp | 57 | ||||
-rw-r--r-- | src/datavisualization/engine/qabstract3dgraph_p.h | 9 |
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; |