Add a Cancel button to the LanguageTagDialog.
authorCarl Hetherington <cth@carlh.net>
Tue, 4 Oct 2022 22:03:09 +0000 (00:03 +0200)
committerCarl Hetherington <cth@carlh.net>
Tue, 4 Oct 2022 22:03:09 +0000 (00:03 +0200)
src/wx/dcp_panel.cc
src/wx/language_tag_dialog.cc
src/wx/language_tag_widget.cc

index 8a3e57304e91233ca6e540ebbfdce8a6180be3ef..895aed9c9cc98e36b47eb5ecc9e1665d2c309d3e 100644 (file)
@@ -1039,8 +1039,9 @@ DCPPanel::edit_audio_language_clicked ()
 {
        DCPOMATIC_ASSERT (_film->audio_language());
        auto d = new LanguageTagDialog (_panel, *_film->audio_language());
 {
        DCPOMATIC_ASSERT (_film->audio_language());
        auto d = new LanguageTagDialog (_panel, *_film->audio_language());
-       d->ShowModal ();
-       _film->set_audio_language(d->get());
+       if (d->ShowModal() == wxID_OK) {
+              _film->set_audio_language(d->get());
+       }
        d->Destroy ();
 }
 
        d->Destroy ();
 }
 
index 6fdcdba7898f039d177bce0aa104439d94e9528f..a3ad847d52b9c98d6bb375d3b69811f15ee47859 100644 (file)
@@ -46,7 +46,7 @@ LanguageTagDialog::LanguageTagDialog (wxWindow* parent, dcp::LanguageTag tag)
        overall_sizer->Add (_list, 0, wxALL, DCPOMATIC_SIZER_GAP);
        overall_sizer->Add (add, 0, wxALL, DCPOMATIC_SIZER_GAP);
 
        overall_sizer->Add (_list, 0, wxALL, DCPOMATIC_SIZER_GAP);
        overall_sizer->Add (add, 0, wxALL, DCPOMATIC_SIZER_GAP);
 
-       auto buttons = CreateSeparatedButtonSizer (wxOK);
+       auto buttons = CreateSeparatedButtonSizer(wxOK | wxCANCEL);
        if (buttons) {
                overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder());
        }
        if (buttons) {
                overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder());
        }
index 567b1fefab15b31eb935e6bdd50ae571addec84c..37b7f6209fe5a222c4a2cfdf3bb8c3923b559bcc 100644 (file)
@@ -66,9 +66,10 @@ void
 LanguageTagWidget::edit ()
 {
        auto d = new LanguageTagDialog(_parent, _tag.get_value_or(dcp::LanguageTag("en")));
 LanguageTagWidget::edit ()
 {
        auto d = new LanguageTagDialog(_parent, _tag.get_value_or(dcp::LanguageTag("en")));
-       d->ShowModal ();
-       set (d->get());
-       Changed (d->get());
+       if (d->ShowModal() == wxID_OK) {
+               set(d->get());
+               Changed(d->get());
+       }
        d->Destroy ();
 }
 
        d->Destroy ();
 }