summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-03-03 13:34:07 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-03-03 13:36:49 +0200
commit7206dc36f1be77515cf6759795b265c986b2e20b (patch)
treef67c4bbef6382724c8a361805c5318f786aa7f25
parent3347c6537f1c2c6f070a28c1b5d23fa1ceb3a50f (diff)
Disallow clearing all draw flags
Task-number: QTRD-2907 Change-Id: I89a45971bf67c533ecfe477cd685812c46574dd8 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-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