summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dscene.cpp
diff options
context:
space:
mode:
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
*