summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/datavisualization/qmlsurface/qml/qmlsurface/main.qml20
-rw-r--r--src/datavisualization/data/qsurface3dseries.cpp20
2 files changed, 32 insertions, 8 deletions
diff --git a/examples/datavisualization/qmlsurface/qml/qmlsurface/main.qml b/examples/datavisualization/qmlsurface/qml/qmlsurface/main.qml
index c38c3146..f11d15f3 100644
--- a/examples/datavisualization/qmlsurface/qml/qmlsurface/main.qml
+++ b/examples/datavisualization/qmlsurface/qml/qmlsurface/main.qml
@@ -97,6 +97,8 @@ Rectangle {
onFlatShadingSupportedChanged: {
flatShadingToggle.text = "Flat not supported"
}
+
+ onDrawModeChanged: checkState()
}
//! [4]
Surface3DSeries {
@@ -113,6 +115,8 @@ Rectangle {
minXValue: 67
maxXValue: 97
}
+
+ onDrawModeChanged: checkState()
}
//! [4]
}
@@ -135,11 +139,9 @@ Rectangle {
if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe) {
surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
heightSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
- text = "Show Surface Grid"
} else {
surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
heightSeries.drawMode |= Surface3DSeries.DrawWireframe;
- text = "Hide Surface Grid"
}
}
//! [1]
@@ -155,11 +157,9 @@ Rectangle {
if (surfaceSeries.drawMode & Surface3DSeries.DrawSurface) {
surfaceSeries.drawMode &= ~Surface3DSeries.DrawSurface;
heightSeries.drawMode &= ~Surface3DSeries.DrawSurface;
- text = "Show Surface"
} else {
surfaceSeries.drawMode |= Surface3DSeries.DrawSurface;
heightSeries.drawMode |= Surface3DSeries.DrawSurface;
- text = "Hide Surface"
}
}
//! [8]
@@ -242,4 +242,16 @@ Rectangle {
//! [3]
}
}
+
+ function checkState() {
+ if (surfaceSeries.drawMode & Surface3DSeries.DrawSurface)
+ surfaceToggle.text = "Hide Surface"
+ else
+ surfaceToggle.text = "Show Surface"
+
+ if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe)
+ surfaceGridToggle.text = "Hide Surface Grid"
+ else
+ surfaceGridToggle.text = "Show Surface Grid"
+ }
}
diff --git a/src/datavisualization/data/qsurface3dseries.cpp b/src/datavisualization/data/qsurface3dseries.cpp
index 9518b0c4..c5ac9fe8 100644
--- a/src/datavisualization/data/qsurface3dseries.cpp
+++ b/src/datavisualization/data/qsurface3dseries.cpp
@@ -140,6 +140,13 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION
*/
/*!
+ * \qmlproperty DrawFlag Surface3DSeries::drawMode
+ *
+ * Sets the drawing \a mode to one of \l{QSurface3DSeries::DrawFlag}{Surface3DSeries.DrawFlag}.
+ * Clearing all flags is not allowed.
+ */
+
+/*!
* \enum QSurface3DSeries::DrawFlag
*
* Drawing mode of the surface. Values of this enumeration can be combined with OR operator.
@@ -283,7 +290,7 @@ bool QSurface3DSeries::isFlatShadingSupported() const
/*!
* \property QSurface3DSeries::drawMode
*
- * Sets the drawing \a mode to one of DrawFlag.
+ * Sets the drawing \a mode to one of DrawFlag. Clearing all flags is not allowed.
*/
void QSurface3DSeries::setDrawMode(DrawFlags mode)
{
@@ -389,9 +396,14 @@ void QSurface3DSeriesPrivate::setFlatShadingEnabled(bool enabled)
void QSurface3DSeriesPrivate::setDrawMode(QSurface3DSeries::DrawFlags mode)
{
- m_drawMode = mode;
- if (m_controller)
- m_controller->markSeriesVisualsDirty();
+ if (mode.testFlag(QSurface3DSeries::DrawWireframe)
+ || mode.testFlag(QSurface3DSeries::DrawSurface)) {
+ m_drawMode = mode;
+ if (m_controller)
+ m_controller->markSeriesVisualsDirty();
+ } else {
+ qWarning("You may not clear all draw flags. Mode not changed.");
+ }
}
QT_END_NAMESPACE_DATAVISUALIZATION