From 6a77a27cdcbcee7db598fbd353015e0d3288b183 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Tue, 30 Mar 2021 15:19:46 -0400
Subject: [PATCH] previewrenderer: disconnect signals on destroy

also fix some build warnings

Change-Id: Ibbf2e28cb64800e65b8712c6d733aea9aa69c916
GitLab: #356
---
 src/previewrenderer.cpp | 12 ++++++++----
 src/previewrenderer.h   |  2 ++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/previewrenderer.cpp b/src/previewrenderer.cpp
index cdd7a75e8..6026b93ee 100644
--- a/src/previewrenderer.cpp
+++ b/src/previewrenderer.cpp
@@ -117,13 +117,16 @@ PhotoboothPreviewRender::PhotoboothPreviewRender(QQuickItem* parent)
 {
     connect(this, &PreviewRenderer::lrcInstanceChanged, [this] {
         if (lrcInstance_)
-            connect(lrcInstance_->renderer(), &RenderManager::previewRenderingStopped, [this]() {
-                Q_EMIT hideBooth();
-            });
+            rendererStoppedConnection_ = connect(lrcInstance_->renderer(),
+                                                 &RenderManager::previewRenderingStopped,
+                                                 [this]() { Q_EMIT hideBooth(); });
     });
 }
 
-PhotoboothPreviewRender::~PhotoboothPreviewRender() {}
+PhotoboothPreviewRender::~PhotoboothPreviewRender()
+{
+    disconnect(rendererStoppedConnection_);
+}
 
 QString
 PhotoboothPreviewRender::takePhoto(int size)
@@ -133,6 +136,7 @@ PhotoboothPreviewRender::takePhoto(int size)
             previewImage->copy()
                 .scaled(size, size, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation)));
     }
+    return {};
 }
 
 void
diff --git a/src/previewrenderer.h b/src/previewrenderer.h
index a30904d9c..3fb6ad564 100644
--- a/src/previewrenderer.h
+++ b/src/previewrenderer.h
@@ -82,4 +82,6 @@ Q_SIGNALS:
 
 private:
     void paint(QPainter* painter) override final;
+
+    QMetaObject::Connection rendererStoppedConnection_;
 };
-- 
GitLab