From 7206dc36f1be77515cf6759795b265c986b2e20b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Mon, 3 Mar 2014 13:34:07 +0200 Subject: Disallow clearing all draw flags Task-number: QTRD-2907 Change-Id: I89a45971bf67c533ecfe477cd685812c46574dd8 Reviewed-by: Miikka Heikkinen --- .../qmlsurface/qml/qmlsurface/main.qml | 20 ++++++++++++++++---- src/datavisualization/data/qsurface3dseries.cpp | 20 ++++++++++++++++---- 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 @@ -139,6 +139,13 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION * Before then it is always true. */ +/*! + * \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 * @@ -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 -- cgit v1.2.1