diff options
author | Kaj Grönholm <kaj.gronholm@qt.io> | 2018-11-28 11:52:16 +0200 |
---|---|---|
committer | Kaj Grönholm <kaj.gronholm@qt.io> | 2018-11-30 10:32:24 +0000 |
commit | e4161db48c76fe646a338315c0c1a1f3588edbb4 (patch) | |
tree | 2101c024c0bcf04a90ec586572404bc286f09ffe | |
parent | 11ec833a0d21b60abbcfad0d1224fbe7ccad0682 (diff) |
Fix stereoscopic mode changing with subpresentations
Q3DSSceneManager::buildScene() is called for both main presentation
and sub presentation(s). To not disconnect stereoscopic mode
switching with subpresentations, move it into better place.
Task-number: QT3DS-2738
Change-Id: I5ecc9260c28ea1d42ba43aee2111f46a1ef9b607
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r-- | src/runtime/q3dsengine.cpp | 3 | ||||
-rw-r--r-- | src/runtime/q3dsscenemanager.cpp | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/q3dsengine.cpp b/src/runtime/q3dsengine.cpp index c0dee6d..875e422 100644 --- a/src/runtime/q3dsengine.cpp +++ b/src/runtime/q3dsengine.cpp @@ -1149,6 +1149,9 @@ void Q3DSEngine::prepareForReload() destroyBehaviorHandle(h); m_behaviorHandles.clear(); + // Disconnect previously loaded signals + QObject::disconnect(this, &Q3DSEngine::stereoModeChanged, 0, 0); + if (!m_uipPresentations.isEmpty()) { for (UipPresentation &pres : m_uipPresentations) { if (pres.sceneManager) diff --git a/src/runtime/q3dsscenemanager.cpp b/src/runtime/q3dsscenemanager.cpp index bdfc797..8b6cfbd 100644 --- a/src/runtime/q3dsscenemanager.cpp +++ b/src/runtime/q3dsscenemanager.cpp @@ -726,8 +726,6 @@ Q3DSSceneManager::Scene Q3DSSceneManager::buildScene(Q3DSUipPresentation *presen this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); } - QObject::disconnect(m_engine, &Q3DSEngine::stereoModeChanged, 0, 0); - // Kick off the Qt3D scene. m_rootEntity = new Qt3DCore::QEntity; m_rootEntity->setObjectName(QString(QLatin1String("non-layer root for presentation %1")).arg(m_presentation->name())); |