X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Feditable_list.h;h=f3a0dd957d01a11989640d4f6493df9caad5930f;hb=b7e65adf286ce20918797a06a910ededf8f07b7b;hp=902d1ccbbf213e7c53288cd1066579de58222348;hpb=69326e73b29be371dacbdacd741a0a88a5ef1a5b;p=dcpomatic.git diff --git a/src/wx/editable_list.h b/src/wx/editable_list.h index 902d1ccbb..f3a0dd957 100644 --- a/src/wx/editable_list.h +++ b/src/wx/editable_list.h @@ -25,6 +25,7 @@ #include "dcpomatic_button.h" #include "wx_util.h" +#include "lib/scope_guard.h" #include LIBDCP_DISABLE_WARNINGS #include @@ -233,6 +234,7 @@ private: void add_clicked () { S* dialog = new S (this); + ScopeGuard sg = [dialog]() { dialog->Destroy(); }; if (dialog->ShowModal() == wxID_OK) { auto const v = dialog->get (); @@ -244,8 +246,6 @@ private: _set (all); } } - - dialog->Destroy (); } void edit_clicked () @@ -259,6 +259,7 @@ private: DCPOMATIC_ASSERT (item >= 0 && item < int (all.size ())); S* dialog = new S (this); + ScopeGuard sg = [dialog]() { dialog->Destroy(); }; dialog->set (all[item]); if (dialog->ShowModal() == wxID_OK) { auto const v = dialog->get (); @@ -269,7 +270,6 @@ private: all[item] = v.get (); } - dialog->Destroy (); for (size_t i = 0; i < _columns.size(); ++i) { _list->SetItem (item, i, std_to_wx (_column (all[item], i)));