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();
}
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 ();
}
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;
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();
}
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 ();
}