diff options
-rw-r--r-- | src/datavisualization/engine/q3dbars.cpp | 43 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dbars.h | 30 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dscatter.cpp | 29 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dscatter.h | 23 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dsurface.cpp | 20 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dsurface.h | 30 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3dcontroller.cpp | 45 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3dcontroller_p.h | 2 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativebars.cpp | 15 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativebars_p.h | 13 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativescatter_p.h | 4 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativesurface.cpp | 9 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativesurface_p.h | 3 |
13 files changed, 197 insertions, 69 deletions
diff --git a/src/datavisualization/engine/q3dbars.cpp b/src/datavisualization/engine/q3dbars.cpp index 086bfc82..17a3a6ad 100644 --- a/src/datavisualization/engine/q3dbars.cpp +++ b/src/datavisualization/engine/q3dbars.cpp @@ -102,6 +102,22 @@ Q3DBars::Q3DBars() { setVisualController(d_ptr->m_shared); d_ptr->m_shared->initializeOpenGL(); + QObject::connect(d_ptr->m_shared, &Abstract3DController::selectionModeChanged, this, + &Q3DBars::selectionModeChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::labelStyleChanged, this, + &Q3DBars::labelStyleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::shadowQualityChanged, this, + &Q3DBars::shadowQualityChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::meshFileNameChanged, this, + &Q3DBars::meshFileNameChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::fontChanged, this, + &Q3DBars::fontChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::themeChanged, this, + &Q3DBars::themeChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::gridVisibleChanged, this, + &Q3DBars::gridVisibleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::backgroundVisibleChanged, this, + &Q3DBars::backgroundVisibleChanged); QObject::connect(d_ptr->m_shared, &Bars3DController::selectedBarChanged, this, &Q3DBars::selectedBarChanged); QObject::connect(d_ptr->m_shared, &Abstract3DController::needRender, this, @@ -198,7 +214,10 @@ void Q3DBars::setHeight(const int height) */ void Q3DBars::setBarThickness(qreal thicknessRatio) { - d_ptr->m_shared->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), isBarSpacingRelative()); + if (thicknessRatio != barThickness()) { + d_ptr->m_shared->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), isBarSpacingRelative()); + emit barThicknessChanged(thicknessRatio); + } } qreal Q3DBars::barThickness() @@ -216,7 +235,10 @@ qreal Q3DBars::barThickness() */ void Q3DBars::setBarSpacing(QSizeF spacing) { - d_ptr->m_shared->setBarSpecs(GLfloat(barThickness()), spacing, isBarSpacingRelative()); + if (spacing != barSpacing()) { + d_ptr->m_shared->setBarSpecs(GLfloat(barThickness()), spacing, isBarSpacingRelative()); + emit barSpacingChanged(spacing); + } } QSizeF Q3DBars::barSpacing() @@ -233,7 +255,10 @@ QSizeF Q3DBars::barSpacing() */ void Q3DBars::setBarSpacingRelative(bool relative) { - d_ptr->m_shared->setBarSpecs(GLfloat(barThickness()), barSpacing(), relative); + if (relative != isBarSpacingRelative()) { + d_ptr->m_shared->setBarSpecs(GLfloat(barThickness()), barSpacing(), relative); + emit barSpacingRelativeChanged(relative); + } } bool Q3DBars::isBarSpacingRelative() @@ -254,19 +279,27 @@ void Q3DBars::setBarType(QDataVis::MeshStyle style, bool smooth) } /*! - * Sets a predefined \a theme from \c QDataVis::Theme. It is preset to \c QDataVis::ThemeQt by - * default. Theme affects bar colors, label colors, text color, background color, window color and + * \property Q3DBars::theme + * + * A predefined \a theme from \c QDataVis::Theme. It is preset to \c QDataVis::ThemeQt by + * default. Theme affects label colors, text color, background color, window color and * grid color. Lighting is also adjusted by themes. * * \sa setBarColor() * * \preliminary */ + void Q3DBars::setTheme(QDataVis::Theme theme) { d_ptr->m_shared->setTheme(theme); } +QDataVis::Theme Q3DBars::theme() const +{ + return d_ptr->m_shared->theme().theme(); +} + /*! * Set bar color using your own color. \a baseColor sets the base color of a bar. The \a uniform * -flag is used to define if color needs to be uniform throughout bar's length, or will the colors diff --git a/src/datavisualization/engine/q3dbars.h b/src/datavisualization/engine/q3dbars.h index 51c35257..602e1e11 100644 --- a/src/datavisualization/engine/q3dbars.h +++ b/src/datavisualization/engine/q3dbars.h @@ -35,16 +35,17 @@ class Q3DScene; class QT_DATAVISUALIZATION_EXPORT Q3DBars : public Q3DWindow { Q_OBJECT - Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode) - Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle) + Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle NOTIFY labelStyleChanged) Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged) - Q_PROPERTY(qreal barThickness READ barThickness WRITE setBarThickness) - Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing) - Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative) - Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible) - Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible) + Q_PROPERTY(qreal 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(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged) + Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::Theme theme READ theme WRITE setTheme NOTIFY themeChanged) + Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible NOTIFY gridVisibleChanged) + Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible NOTIFY backgroundVisibleChanged) Q_PROPERTY(QPoint selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged) Q_PROPERTY(Q3DScene* scene READ scene) @@ -55,6 +56,7 @@ public: void setBarType(QDataVis::MeshStyle style, bool smooth = false); void setTheme(QDataVis::Theme theme); + QDataVis::Theme theme() const; void setBarThickness(qreal thicknessRatio); qreal barThickness(); @@ -114,7 +116,17 @@ public: QList<QBarDataProxy *> dataProxies() const; signals: + void selectionModeChanged(QDataVis::SelectionFlags mode); + void labelStyleChanged(QDataVis::LabelStyle style); void shadowQualityChanged(QDataVis::ShadowQuality quality); + void barThicknessChanged(qreal thicknessRatio); + void barSpacingChanged(QSizeF spacing); + void barSpacingRelativeChanged(bool relative); + void meshFileNameChanged(QString filename); + void fontChanged(QFont font); + void themeChanged(QDataVis::Theme theme); + void gridVisibleChanged(bool visible); + void backgroundVisibleChanged(bool visible); void selectedBarChanged(QPoint position); protected: diff --git a/src/datavisualization/engine/q3dscatter.cpp b/src/datavisualization/engine/q3dscatter.cpp index aa67498e..db78d5fb 100644 --- a/src/datavisualization/engine/q3dscatter.cpp +++ b/src/datavisualization/engine/q3dscatter.cpp @@ -88,6 +88,22 @@ Q3DScatter::Q3DScatter() { setVisualController(d_ptr->m_shared); d_ptr->m_shared->initializeOpenGL(); + QObject::connect(d_ptr->m_shared, &Abstract3DController::selectionModeChanged, this, + &Q3DScatter::selectionModeChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::labelStyleChanged, this, + &Q3DScatter::labelStyleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::shadowQualityChanged, this, + &Q3DScatter::shadowQualityChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::meshFileNameChanged, this, + &Q3DScatter::meshFileNameChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::fontChanged, this, + &Q3DScatter::fontChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::themeChanged, this, + &Q3DScatter::themeChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::gridVisibleChanged, this, + &Q3DScatter::gridVisibleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::backgroundVisibleChanged, this, + &Q3DScatter::backgroundVisibleChanged); QObject::connect(d_ptr->m_shared, &Scatter3DController::selectedItemIndexChanged, this, &Q3DScatter::selectedItemIndexChanged); QObject::connect(d_ptr->m_shared, &Abstract3DController::needRender, this, @@ -189,11 +205,11 @@ void Q3DScatter::setObjectType(QDataVis::MeshStyle style, bool smooth) } /*! - * Sets a predefined \a theme from \c QDataVis::Theme. It is preset to \c QDataVis::ThemeQt by - * default. Theme affects bar colors, label colors, text color, background color, window color and - * grid color. Lighting is also adjusted by themes. + * \property Q3DScatter::theme * - * \sa setObjectColor() + * A predefined \a theme from \c QDataVis::Theme. It is preset to \c QDataVis::ThemeQt by + * default. Theme affects label colors, text color, background color, window color and + * grid color. Lighting is also adjusted by themes. * * \preliminary */ @@ -202,6 +218,11 @@ void Q3DScatter::setTheme(QDataVis::Theme theme) d_ptr->m_shared->setTheme(theme); } +QDataVis::Theme Q3DScatter::theme() const +{ + return d_ptr->m_shared->theme().theme(); +} + /*! * Set item color using your own colors. \a baseColor sets the base color of a item. The \a uniform * -flag is used to define if color needs to be uniform throughout item's length, or will the colors diff --git a/src/datavisualization/engine/q3dscatter.h b/src/datavisualization/engine/q3dscatter.h index 0241f439..70056a9d 100644 --- a/src/datavisualization/engine/q3dscatter.h +++ b/src/datavisualization/engine/q3dscatter.h @@ -35,13 +35,14 @@ class QScatterDataProxy; class QT_DATAVISUALIZATION_EXPORT Q3DScatter : public Q3DWindow { Q_OBJECT - Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode) - Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle) - Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality) - Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible) - Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible) + Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle NOTIFY labelStyleChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged) + Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged) + Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::Theme theme READ theme WRITE setTheme NOTIFY themeChanged) + Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible NOTIFY gridVisibleChanged) + Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible NOTIFY backgroundVisibleChanged) Q_PROPERTY(int selectedItemIndex READ selectedItemIndex WRITE setSelectedItemIndex NOTIFY selectedItemIndexChanged) Q_PROPERTY(Q3DScene* scene READ scene) @@ -52,6 +53,7 @@ public: void setObjectType(QDataVis::MeshStyle style, bool smooth = false); void setTheme(QDataVis::Theme theme); + QDataVis::Theme theme() const; void setObjectColor(const QColor &baseColor, bool uniform = true); QColor objectColor() const; @@ -102,7 +104,14 @@ public: QList<QScatterDataProxy *> dataProxies() const; signals: + void selectionModeChanged(QDataVis::SelectionFlags mode); + void labelStyleChanged(QDataVis::LabelStyle style); void shadowQualityChanged(QDataVis::ShadowQuality quality); + void meshFileNameChanged(QString filename); + void fontChanged(QFont font); + void themeChanged(QDataVis::Theme theme); + void gridVisibleChanged(bool visible); + void backgroundVisibleChanged(bool visible); void selectedItemIndexChanged(int index); protected: diff --git a/src/datavisualization/engine/q3dsurface.cpp b/src/datavisualization/engine/q3dsurface.cpp index a91df086..ac451ad2 100644 --- a/src/datavisualization/engine/q3dsurface.cpp +++ b/src/datavisualization/engine/q3dsurface.cpp @@ -101,6 +101,26 @@ Q3DSurface::Q3DSurface() { setVisualController(d_ptr->m_shared); d_ptr->m_shared->initializeOpenGL(); + QObject::connect(d_ptr->m_shared, &Abstract3DController::selectionModeChanged, this, + &Q3DSurface::selectionModeChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::labelStyleChanged, this, + &Q3DSurface::labelStyleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::themeChanged, this, + &Q3DSurface::themeChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::shadowQualityChanged, this, + &Q3DSurface::shadowQualityChanged); + QObject::connect(d_ptr->m_shared, &Surface3DController::surfaceVisibleChanged, this, + &Q3DSurface::surfaceVisibleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::gridVisibleChanged, this, + &Q3DSurface::gridVisibleChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::backgroundVisibleChanged, this, + &Q3DSurface::backgroundVisibleChanged); + QObject::connect(d_ptr->m_shared, &Surface3DController::smoothSurfaceEnabledChanged, this, + &Q3DSurface::smoothSurfaceEnabledChanged); + QObject::connect(d_ptr->m_shared, &Surface3DController::surfaceGridEnabledChanged, this, + &Q3DSurface::surfaceGridEnabledChanged); + QObject::connect(d_ptr->m_shared, &Abstract3DController::fontChanged, this, + &Q3DSurface::fontChanged); QObject::connect(d_ptr->m_shared, &Surface3DController::selectedPointChanged, this, &Q3DSurface::selectedPointChanged); QObject::connect(d_ptr->m_shared, &Abstract3DController::needRender, this, diff --git a/src/datavisualization/engine/q3dsurface.h b/src/datavisualization/engine/q3dsurface.h index ca3c3965..85b87589 100644 --- a/src/datavisualization/engine/q3dsurface.h +++ b/src/datavisualization/engine/q3dsurface.h @@ -34,17 +34,17 @@ class QSurfaceDataProxy; class QT_DATAVISUALIZATION_EXPORT Q3DSurface : public Q3DWindow { Q_OBJECT - Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode) - Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle) - Q_PROPERTY(QtDataVisualization::QDataVis::Theme theme READ theme WRITE setTheme) - Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality) - Q_PROPERTY(bool surfaceVisible READ isSurfaceVisible WRITE setSurfaceVisible) - Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible) - Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible) - Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled) - Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled) + Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle NOTIFY labelStyleChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::Theme theme READ theme WRITE setTheme NOTIFY themeChanged) + Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged) + Q_PROPERTY(bool surfaceVisible READ isSurfaceVisible WRITE setSurfaceVisible NOTIFY surfaceVisibleChanged) + Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible NOTIFY gridVisibleChanged) + Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible NOTIFY backgroundVisibleChanged) + Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled NOTIFY smoothSurfaceEnabledChanged) + Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled NOTIFY surfaceGridEnabledChanged) Q_PROPERTY(QLinearGradient gradient READ gradient WRITE setGradient) - Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) Q_PROPERTY(Q3DScene* scene READ scene) Q_PROPERTY(QPoint selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged) @@ -110,6 +110,16 @@ public: QDataVis::LabelStyle labelStyle() const; signals: + void selectionModeChanged(QDataVis::SelectionFlags mode); + void labelStyleChanged(QDataVis::LabelStyle style); + void themeChanged(QDataVis::Theme theme); + void shadowQualityChanged(QDataVis::ShadowQuality quality); + void surfaceVisibleChanged(bool visible); + void gridVisibleChanged(bool visible); + void backgroundVisibleChanged(bool visible); + void smoothSurfaceEnabledChanged(bool enabled); + void surfaceGridEnabledChanged(bool visible); + void fontChanged(QFont font); void selectedPointChanged(QPoint position); protected: diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp index 04943bf9..a30ecfad 100644 --- a/src/datavisualization/engine/surface3dcontroller.cpp +++ b/src/datavisualization/engine/surface3dcontroller.cpp @@ -137,13 +137,12 @@ QPoint Surface3DController::noSelectionPoint() void Surface3DController::setSmoothSurface(bool enable) { - bool changed = m_isSmoothSurfaceEnabled != enable; - m_isSmoothSurfaceEnabled = enable; - m_changeTracker.smoothStatusChanged = true; - emitNeedRender(); - - if (changed) - emit smoothSurfaceEnabledChanged(m_isSmoothSurfaceEnabled); + if (enable != m_isSmoothSurfaceEnabled) { + m_isSmoothSurfaceEnabled = enable; + m_changeTracker.smoothStatusChanged = true; + emit smoothSurfaceEnabledChanged(enable); + emitNeedRender(); + } } bool Surface3DController::smoothSurface() @@ -153,9 +152,12 @@ bool Surface3DController::smoothSurface() void Surface3DController::setSurfaceVisible(bool visible) { - m_isSurfaceEnabled = visible; - m_changeTracker.surfaceVisibilityChanged = true; - emitNeedRender(); + if (visible != m_isSurfaceEnabled) { + m_isSurfaceEnabled = visible; + m_changeTracker.surfaceVisibilityChanged = true; + emit surfaceVisibleChanged(visible); + emitNeedRender(); + } } bool Surface3DController::surfaceVisible() const @@ -165,9 +167,12 @@ bool Surface3DController::surfaceVisible() const void Surface3DController::setSurfaceGrid(bool enable) { - m_isSurfaceGridEnabled = enable; - m_changeTracker.surfaceGridChanged = true; - emitNeedRender(); + if (enable != m_isSurfaceGridEnabled) { + m_isSurfaceGridEnabled = enable; + m_changeTracker.surfaceGridChanged = true; + emit surfaceGridEnabledChanged(enable); + emitNeedRender(); + } } bool Surface3DController::surfaceGrid() @@ -177,11 +182,13 @@ bool Surface3DController::surfaceGrid() void Surface3DController::setGradient(const QLinearGradient &gradient) { - m_userDefinedGradient = gradient; - m_userDefinedGradient.setStart(2, 1024); - m_userDefinedGradient.setFinalStop(0, 0); - m_changeTracker.gradientColorChanged = true; - emitNeedRender(); + if (gradient != m_userDefinedGradient) { + m_userDefinedGradient = gradient; + m_userDefinedGradient.setStart(2, 1024); + m_userDefinedGradient.setFinalStop(0, 0); + m_changeTracker.gradientColorChanged = true; + emitNeedRender(); + } } QLinearGradient Surface3DController::gradient() const @@ -204,7 +211,7 @@ void Surface3DController::setSelectionMode(QDataVis::SelectionFlags mode) qWarning("Unsupported selection mode."); return; } else if (mode.testFlag(QDataVis::SelectionSlice) - && (mode.testFlag(QDataVis::SelectionRow) == mode.testFlag(QDataVis::SelectionColumn))) { + && (mode.testFlag(QDataVis::SelectionRow) == mode.testFlag(QDataVis::SelectionColumn))) { qWarning("Must specify one of either row or column selection mode in conjunction with slicing mode."); } else { // When setting selection mode to a new slicing mode, activate slicing diff --git a/src/datavisualization/engine/surface3dcontroller_p.h b/src/datavisualization/engine/surface3dcontroller_p.h index 1010f09b..f9617ad4 100644 --- a/src/datavisualization/engine/surface3dcontroller_p.h +++ b/src/datavisualization/engine/surface3dcontroller_p.h @@ -111,6 +111,8 @@ public slots: signals: void smoothSurfaceEnabledChanged(bool enable); void selectedPointChanged(QPoint position); + void surfaceVisibleChanged(bool visible); + void surfaceGridEnabledChanged(bool enable); private: void adjustValueAxisRange(); diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp index 09277272..606be75f 100644 --- a/src/datavisualizationqml2/declarativebars.cpp +++ b/src/datavisualizationqml2/declarativebars.cpp @@ -125,7 +125,10 @@ void DeclarativeBars::setColumnAxis(Q3DCategoryAxis *axis) void DeclarativeBars::setBarThickness(qreal thicknessRatio) { - m_shared->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), isBarSpacingRelative()); + if (thicknessRatio != barThickness()) { + m_shared->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), isBarSpacingRelative()); + emit barThicknessChanged(thicknessRatio); + } } qreal DeclarativeBars::barThickness() const @@ -135,7 +138,10 @@ qreal DeclarativeBars::barThickness() const void DeclarativeBars::setBarSpacing(QSizeF spacing) { - m_shared->setBarSpecs(GLfloat(barThickness()), spacing, isBarSpacingRelative()); + if (spacing != barSpacing()) { + m_shared->setBarSpecs(GLfloat(barThickness()), spacing, isBarSpacingRelative()); + emit barSpacingChanged(spacing); + } } QSizeF DeclarativeBars::barSpacing() const @@ -145,7 +151,10 @@ QSizeF DeclarativeBars::barSpacing() const void DeclarativeBars::setBarSpacingRelative(bool relative) { - m_shared->setBarSpecs(GLfloat(barThickness()), barSpacing(), relative); + if (relative != isBarSpacingRelative()) { + m_shared->setBarSpecs(GLfloat(barThickness()), barSpacing(), relative); + emit barSpacingRelativeChanged(relative); + } } bool DeclarativeBars::isBarSpacingRelative() const diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h index 06444dc8..acc5f2f1 100644 --- a/src/datavisualizationqml2/declarativebars_p.h +++ b/src/datavisualizationqml2/declarativebars_p.h @@ -51,11 +51,11 @@ class DeclarativeBars : public AbstractDeclarative Q_PROPERTY(Q3DCategoryAxis *rowAxis READ rowAxis WRITE setRowAxis) Q_PROPERTY(Q3DValueAxis *valueAxis READ valueAxis WRITE setValueAxis) Q_PROPERTY(Q3DCategoryAxis *columnAxis READ columnAxis WRITE setColumnAxis) - Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle barType READ barType WRITE setBarType) - Q_PROPERTY(qreal barThickness READ barThickness WRITE setBarThickness) - Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing) - Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative) - Q_PROPERTY(bool barSmoothingEnabled READ isBarSmoothingEnabled WRITE setBarSmoothingEnabled) + Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle barType READ barType WRITE setBarType NOTIFY meshFileNameChanged) + Q_PROPERTY(qreal 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(bool barSmoothingEnabled READ isBarSmoothingEnabled WRITE setBarSmoothingEnabled NOTIFY meshFileNameChanged) Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged) Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged) @@ -98,6 +98,9 @@ public: signals: void selectedBarChanged(const QPointF &position); + void barThicknessChanged(qreal thicknessRatio); + void barSpacingChanged(QSizeF spacing); + void barSpacingRelativeChanged(bool relative); void meshFileNameChanged(QString filename); protected: diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h index 62cbb605..3532f8d6 100644 --- a/src/datavisualizationqml2/declarativescatter_p.h +++ b/src/datavisualizationqml2/declarativescatter_p.h @@ -49,8 +49,8 @@ class DeclarativeScatter : public AbstractDeclarative Q_PROPERTY(Q3DValueAxis *axisX READ axisX WRITE setAxisX) Q_PROPERTY(Q3DValueAxis *axisY READ axisY WRITE setAxisY) Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ) - Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle objectType READ objectType WRITE setObjectType) - Q_PROPERTY(bool objectSmoothingEnabled READ isObjectSmoothingEnabled WRITE setObjectSmoothingEnabled) + Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle objectType READ objectType WRITE setObjectType NOTIFY meshFileNameChanged) + Q_PROPERTY(bool objectSmoothingEnabled READ isObjectSmoothingEnabled WRITE setObjectSmoothingEnabled NOTIFY meshFileNameChanged) Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged) Q_PROPERTY(int selectedItemIndex READ selectedItemIndex WRITE setSelectedItemIndex NOTIFY selectedItemIndexChanged) diff --git a/src/datavisualizationqml2/declarativesurface.cpp b/src/datavisualizationqml2/declarativesurface.cpp index e898bd40..853d0d59 100644 --- a/src/datavisualizationqml2/declarativesurface.cpp +++ b/src/datavisualizationqml2/declarativesurface.cpp @@ -41,14 +41,17 @@ DeclarativeSurface::DeclarativeSurface(QQuickItem *parent) m_shared = new Surface3DController(boundingRect().toRect()); setSharedController(m_shared); - QObject::connect(m_shared, &Surface3DController::smoothSurfaceEnabledChanged, this, - &DeclarativeSurface::smoothSurfaceEnabledChanged); - QItemModelSurfaceDataProxy *proxy = new QItemModelSurfaceDataProxy; m_shared->setActiveDataProxy(proxy); + QObject::connect(m_shared, &Surface3DController::smoothSurfaceEnabledChanged, this, + &DeclarativeSurface::smoothSurfaceEnabledChanged); QObject::connect(m_shared, &Surface3DController::selectedPointChanged, this, &DeclarativeSurface::selectedPointChanged); + QObject::connect(m_shared, &Surface3DController::surfaceVisibleChanged, this, + &DeclarativeSurface::surfaceVisibleChanged); + QObject::connect(m_shared, &Surface3DController::surfaceGridEnabledChanged, this, + &DeclarativeSurface::surfaceGridEnabledChanged); } DeclarativeSurface::~DeclarativeSurface() diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h index 5a2fdb94..df3a280c 100644 --- a/src/datavisualizationqml2/declarativesurface_p.h +++ b/src/datavisualizationqml2/declarativesurface_p.h @@ -54,7 +54,7 @@ class DeclarativeSurface : public AbstractDeclarative Q_PROPERTY(bool surfaceVisible READ isSurfaceVisible WRITE setSurfaceVisible NOTIFY surfaceVisibleChanged) Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled NOTIFY smoothSurfaceEnabledChanged) Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled NOTIFY surfaceGridEnabledChanged) - Q_PROPERTY(ColorGradient *gradient READ gradient WRITE setGradient NOTIFY gradientChanged) + Q_PROPERTY(ColorGradient *gradient READ gradient WRITE setGradient) Q_PROPERTY(QPointF selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged) public: @@ -90,7 +90,6 @@ signals: void surfaceVisibleChanged(bool visible); void smoothSurfaceEnabledChanged(bool enabled); void surfaceGridEnabledChanged(bool visible); - void gradientChanged(ColorGradient *gradient); void selectedPointChanged(QPoint position); protected: |