summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-11-05 09:43:49 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-11-05 10:00:54 +0200
commit2cd0924e7f0147ecbba1197f7d0d32260434a2fd (patch)
treeff7b72fb9120daa7513ab93c47ba5bdd1b5a4b13 /src
parenta6c8a0cca08b4f19c66b55c8c778229ea0b3c85d (diff)
Q_PROPERTY NOTIFY addition, part 2
Task-number: QTRD-2534 Change-Id: I243f1457aef986d54cb27a5a24b411b2291d8c0d Change-Id: I243f1457aef986d54cb27a5a24b411b2291d8c0d Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/engine/q3dbars.cpp43
-rw-r--r--src/datavisualization/engine/q3dbars.h30
-rw-r--r--src/datavisualization/engine/q3dscatter.cpp29
-rw-r--r--src/datavisualization/engine/q3dscatter.h23
-rw-r--r--src/datavisualization/engine/q3dsurface.cpp20
-rw-r--r--src/datavisualization/engine/q3dsurface.h30
-rw-r--r--src/datavisualization/engine/surface3dcontroller.cpp45
-rw-r--r--src/datavisualization/engine/surface3dcontroller_p.h2
-rw-r--r--src/datavisualizationqml2/declarativebars.cpp15
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h13
-rw-r--r--src/datavisualizationqml2/declarativescatter_p.h4
-rw-r--r--src/datavisualizationqml2/declarativesurface.cpp9
-rw-r--r--src/datavisualizationqml2/declarativesurface_p.h3
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: