diff options
-rw-r--r-- | src/runtime/api/q3dsviewersettings.cpp | 4 | ||||
-rw-r--r-- | src/runtime/q3dsengine.cpp | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/runtime/api/q3dsviewersettings.cpp b/src/runtime/api/q3dsviewersettings.cpp index d2d488c..461af0a 100644 --- a/src/runtime/api/q3dsviewersettings.cpp +++ b/src/runtime/api/q3dsviewersettings.cpp @@ -247,6 +247,10 @@ void Q3DSViewerSettings::load(const QString &group, Q3DSViewportSettings *Q3DSViewerSettingsPrivate::createViewportSettingsProxy() { Q_Q(Q3DSViewerSettings); + + // Cleanup connections if recreating + q->disconnect(); + Q3DSViewportSettings *vp = new Q3DSViewportSettings(q); vp->setShowRenderStats(q->isShowingRenderStats()); QObject::connect(q, &Q3DSViewerSettings::showRenderStatsChanged, q, [vp, q] { diff --git a/src/runtime/q3dsengine.cpp b/src/runtime/q3dsengine.cpp index 6bb87b5..c0dee6d 100644 --- a/src/runtime/q3dsengine.cpp +++ b/src/runtime/q3dsengine.cpp @@ -1228,6 +1228,8 @@ void Q3DSEngine::setViewportSettings(Q3DSViewportSettings *viewportSettings) if (m_viewportSettings == viewportSettings) return; + delete m_viewportSettings; + m_viewportSettings = viewportSettings; connect(m_viewportSettings, &Q3DSViewportSettings::showRenderStatsChanged, [this] { setProfileUiVisible(m_viewportSettings->isShowingRenderStats()); |