summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dscene.cpp
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-10-08 14:53:59 +0300
committerPasi Keränen <pasi.keranen@digia.com>2013-10-09 09:01:55 +0300
commit36e42a1988e5c88c76c06415a1aaa19209a6e720 (patch)
treea55fdd66ad21df6bbc2816416bbd4a6bc92de2de /src/datavisualization/engine/q3dscene.cpp
parentfcb1451758099bfd5c256d12af536dafde1d33dc (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.cpp21
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
*