From 3b0fa22f8a2133840cda4f6a12d871ae465b9dc8 Mon Sep 17 00:00:00 2001
From: John Bradley <jrb@turrettech.com>
Date: Wed, 17 Sep 2014 11:01:54 -0500
Subject: [PATCH] Move raw pointer usage/delete to RAII in interaction

---
 obs/window-basic-interaction.cpp | 9 ++++-----
 obs/window-basic-interaction.hpp | 2 +-
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/obs/window-basic-interaction.cpp b/obs/window-basic-interaction.cpp
index 9cf5499d2..d5528926b 100644
--- a/obs/window-basic-interaction.cpp
+++ b/obs/window-basic-interaction.cpp
@@ -34,7 +34,8 @@ OBSBasicInteraction::OBSBasicInteraction(QWidget *parent, OBSSource source_)
 	  ui            (new Ui::OBSBasicInteraction),
 	  source        (source_),
 	  removedSignal (obs_source_get_signal_handler(source), "remove",
-	                 OBSBasicInteraction::SourceRemoved, this)
+	                 OBSBasicInteraction::SourceRemoved, this),
+	  eventFilter   (BuildEventFilter())
 {
 	int cx = (int)config_get_int(App()->GlobalConfig(), "InteractionWindow",
 			"cx");
@@ -45,8 +46,7 @@ OBSBasicInteraction::OBSBasicInteraction(QWidget *parent, OBSSource source_)
 
 	ui->preview->setMouseTracking(true);
 	ui->preview->setFocusPolicy(Qt::StrongFocus);
-	eventFilter = BuildEventFilter();
-	ui->preview->installEventFilter(eventFilter);
+	ui->preview->installEventFilter(eventFilter.get());
 
 	if (cx > 400 && cy > 400)
 		resize(cx, cy);
@@ -68,8 +68,7 @@ OBSBasicInteraction::~OBSBasicInteraction()
 {
 	// since QT fakes a mouse movement while destructing a widget
 	// remove our event filter
-	ui->preview->removeEventFilter(eventFilter);
-	delete eventFilter;
+	ui->preview->removeEventFilter(eventFilter.get());
 }
 
 OBSEventFilter *OBSBasicInteraction::BuildEventFilter()
diff --git a/obs/window-basic-interaction.hpp b/obs/window-basic-interaction.hpp
index 7f358e64b..4c8e3c208 100644
--- a/obs/window-basic-interaction.hpp
+++ b/obs/window-basic-interaction.hpp
@@ -42,7 +42,7 @@ private:
 	OBSSource  source;
 	OBSDisplay display;
 	OBSSignal  removedSignal;
-	OBSEventFilter *eventFilter;
+	std::unique_ptr<OBSEventFilter> eventFilter;
 
 	static void SourceRemoved(void *data, calldata_t params);
 	static void DrawPreview(void *data, uint32_t cx, uint32_t cy);
-- 
GitLab