From eb98505a2cc9382227caafc8519a9172dda5dc3d Mon Sep 17 00:00:00 2001 From: VodBox Date: Sat, 6 Mar 2021 15:31:15 +1300 Subject: [PATCH] UI: Fix memory leak with missing files dialog --- UI/window-basic-main.cpp | 11 +++++++---- UI/window-basic-main.hpp | 3 +++ UI/window-missing-files.cpp | 1 - 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index f2e64e0b9..18061c4c1 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -51,7 +51,6 @@ #include "window-log-reply.hpp" #include "window-projector.hpp" #include "window-remux.hpp" -#include "window-missing-files.hpp" #include "qt-wrappers.hpp" #include "context-bar-controls.hpp" #include "obs-proxy-style.hpp" @@ -1142,9 +1141,13 @@ retryScene: LogScenes(); if (obs_missing_files_count(files) > 0) { - OBSMissingFiles *miss = new OBSMissingFiles(files, this); - miss->show(); - miss->raise(); + missDialog = new OBSMissingFiles(files, this); + missDialog->show(); + missDialog->raise(); + + auto close = [=]() { delete missDialog; }; + + connect(missDialog, &OBSMissingFiles::finished, close); } else { obs_missing_files_destroy(files); } diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 6cae43c2a..ae03d1f59 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -31,6 +31,7 @@ #include "window-basic-transform.hpp" #include "window-basic-adv-audio.hpp" #include "window-basic-filters.hpp" +#include "window-missing-files.hpp" #include "window-projector.hpp" #include "window-basic-about.hpp" #include "auth-base.hpp" @@ -479,6 +480,8 @@ private: QList modalDialogs; QList visMsgBoxes; + OBSMissingFiles *missDialog; + QList visDlgPositions; QByteArray startingDockLayout; diff --git a/UI/window-missing-files.cpp b/UI/window-missing-files.cpp index 83d1bed6c..65b920b25 100644 --- a/UI/window-missing-files.cpp +++ b/UI/window-missing-files.cpp @@ -557,7 +557,6 @@ void OBSMissingFiles::saveFiles() } QDialog::accept(); - destroy(); } void OBSMissingFiles::browseFolders()