diff options
author | Keränen Pasi <pasi.keranen@digia.com> | 2013-11-05 09:58:44 +0200 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@digia.com> | 2013-11-05 13:09:14 +0200 |
commit | 91745c4b2f7933dfcb0c9eca28e87ad0fae93e66 (patch) | |
tree | 9fe246ed56b81e997f3a37a5d071515268040d5b /src/datavisualization/engine/q3dscene.cpp | |
parent | 2cd0924e7f0147ecbba1197f7d0d32260434a2fd (diff) |
Add configurable main and slice view ordering.
Change-Id: I9f5d7399d60971c782fa8ac6fc39a05fa3bbcaa8
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/q3dscene.cpp')
-rw-r--r-- | src/datavisualization/engine/q3dscene.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/datavisualization/engine/q3dscene.cpp b/src/datavisualization/engine/q3dscene.cpp index 3789ea9f..70c8ffd6 100644 --- a/src/datavisualization/engine/q3dscene.cpp +++ b/src/datavisualization/engine/q3dscene.cpp @@ -199,6 +199,26 @@ void Q3DScene::setSlicingActive(bool isSlicing) } /*! + * \property Q3DScene::secondarySubviewOnTop + * + * This property contains whether 2D slicing view is currently drawn on top or if the 3D view is drawn on top. + */ +bool Q3DScene::isSecondarySubviewOnTop() const +{ + return d_ptr->m_isSecondarySubviewOnTop; +} + +void Q3DScene::setSecondarySubviewOnTop(bool isSecondaryOnTop) +{ + if (d_ptr->m_isSecondarySubviewOnTop != isSecondaryOnTop) { + d_ptr->m_isSecondarySubviewOnTop = isSecondaryOnTop; + d_ptr->m_changeTracker.subViewportOrderChanged = true; + emit secondarySubviewOnTopChanged(isSecondaryOnTop); + emitNeedRender(); + } +} + +/*! * \property Q3DScene::activeCamera * * This property contains the currently active camera in the 3D scene. @@ -312,6 +332,7 @@ void Q3DScene::setLightPositionRelativeToCamera(const QVector3D &relativePositio Q3DScenePrivate::Q3DScenePrivate(Q3DScene *q) : q_ptr(q), + m_isSecondarySubviewOnTop(true), m_devicePixelRatio(1.f), m_camera(), m_light(), @@ -335,6 +356,11 @@ void Q3DScenePrivate::sync(Q3DScenePrivate &other) m_changeTracker.viewportChanged = false; other.m_changeTracker.viewportChanged = false; } + if (m_changeTracker.subViewportOrderChanged) { + other.q_ptr->setSecondarySubviewOnTop(q_ptr->isSecondarySubviewOnTop()); + m_changeTracker.subViewportOrderChanged = false; + other.m_changeTracker.subViewportOrderChanged = false; + } if (m_changeTracker.primarySubViewportChanged) { other.q_ptr->setPrimarySubViewport(q_ptr->primarySubViewport()); m_changeTracker.primarySubViewportChanged = false; |