diff options
author | Keränen Pasi <pasi.keranen@digia.com> | 2013-10-08 14:53:59 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@digia.com> | 2013-10-09 09:01:55 +0300 |
commit | 36e42a1988e5c88c76c06415a1aaa19209a6e720 (patch) | |
tree | a55fdd66ad21df6bbc2816416bbd4a6bc92de2de /src/datavisualization/engine/q3dscene.cpp | |
parent | fcb1451758099bfd5c256d12af536dafde1d33dc (diff) |
Fixing the camera preset change not re-rendering bug.
Change-Id: Ie993f08b8e24910c1a956936a4c4bfa63b99c87f
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/q3dscene.cpp')
-rw-r--r-- | src/datavisualization/engine/q3dscene.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/datavisualization/engine/q3dscene.cpp b/src/datavisualization/engine/q3dscene.cpp index b607dc4a..9d60cf05 100644 --- a/src/datavisualization/engine/q3dscene.cpp +++ b/src/datavisualization/engine/q3dscene.cpp @@ -217,12 +217,33 @@ void Q3DScene::setActiveCamera(Q3DCamera *camera) camera->setParent(this); if (camera != d_ptr->m_camera) { + if (d_ptr->m_camera) { + disconnect(d_ptr->m_camera, &Q3DCamera::xRotationChanged, this, + &Q3DScene::emitNeedRender); + disconnect(d_ptr->m_camera, &Q3DCamera::yRotationChanged, this, + &Q3DScene::emitNeedRender); + } + d_ptr->m_camera = camera; d_ptr->m_changeTracker.cameraChanged = true; + + if (camera) { + connect(camera, &Q3DCamera::xRotationChanged, this, + &Q3DScene::emitNeedRender); + connect(camera, &Q3DCamera::yRotationChanged, this, + &Q3DScene::emitNeedRender); + } + emit activeCameraChanged(camera); + emitNeedRender(); } } +void Q3DScene::emitNeedRender() +{ + emit needRender(); +} + /*! * \property Q3DScene::activeLight * |