Use wx_ptr more.
[dcpomatic.git] / src / wx / dcp_panel.cc
index d8aa3ac460986acb4e096cdd2b73ac2c31531184..1b97a023d263b327202ffb69d8a6e45446b024e0 100644 (file)
@@ -327,12 +327,7 @@ DCPPanel::standard_changed ()
 void
 DCPPanel::markers_clicked ()
 {
-       if (_markers_dialog) {
-               _markers_dialog->Destroy ();
-               _markers_dialog = nullptr;
-       }
-
-       _markers_dialog = new MarkersDialog (_panel, _film, _viewer);
+       _markers_dialog.reset(_panel, _film, _viewer);
        _markers_dialog->Show();
 }
 
@@ -341,21 +336,11 @@ void
 DCPPanel::metadata_clicked ()
 {
        if (_film->interop()) {
-               if (_interop_metadata_dialog) {
-                       _interop_metadata_dialog->Destroy ();
-                       _interop_metadata_dialog = nullptr;
-               }
-
-               _interop_metadata_dialog = new InteropMetadataDialog (_panel, _film);
+               _interop_metadata_dialog.reset(_panel, _film);
                _interop_metadata_dialog->setup ();
                _interop_metadata_dialog->Show ();
        } else {
-               if (_smpte_metadata_dialog) {
-                       _smpte_metadata_dialog->Destroy ();
-                       _smpte_metadata_dialog = nullptr;
-               }
-
-               _smpte_metadata_dialog = new SMPTEMetadataDialog (_panel, _film);
+               _smpte_metadata_dialog.reset(_panel, _film);
                _smpte_metadata_dialog->setup ();
                _smpte_metadata_dialog->Show ();
        }
@@ -586,22 +571,10 @@ void
 DCPPanel::set_film (shared_ptr<Film> film)
 {
        /* We are changing film, so destroy any dialogs for the old one */
-       if (_audio_dialog) {
-               _audio_dialog->Destroy ();
-               _audio_dialog = nullptr;
-       }
-       if (_markers_dialog) {
-               _markers_dialog->Destroy ();
-               _markers_dialog = nullptr;
-       }
-       if (_interop_metadata_dialog) {
-               _interop_metadata_dialog->Destroy ();
-               _interop_metadata_dialog = nullptr;
-       }
-       if (_smpte_metadata_dialog) {
-               _smpte_metadata_dialog->Destroy ();
-               _smpte_metadata_dialog = nullptr;
-       }
+       _audio_dialog.reset();
+       _markers_dialog.reset();
+       _interop_metadata_dialog.reset();
+       _smpte_metadata_dialog.reset();
 
        _film = film;
 
@@ -979,13 +952,8 @@ DCPPanel::show_audio_clicked ()
                return;
        }
 
-       if (_audio_dialog) {
-               _audio_dialog->Destroy ();
-               _audio_dialog = nullptr;
-       }
-
-       auto d = new AudioDialog (_panel, _film, _viewer);
-       d->Show ();
+       _audio_dialog.reset(_panel, _film, _viewer);
+       _audio_dialog->Show();
 }
 
 
@@ -1039,11 +1007,10 @@ void
 DCPPanel::edit_audio_language_clicked ()
 {
        DCPOMATIC_ASSERT (_film->audio_language());
-       auto d = new LanguageTagDialog (_panel, *_film->audio_language());
+       auto d = make_wx<LanguageTagDialog>(_panel, *_film->audio_language());
        if (d->ShowModal() == wxID_OK) {
               _film->set_audio_language(d->get());
        }
-       d->Destroy ();
 }