From a9017504a0e3c152aba6ea8ac2dfa89183a362cb Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 21 Jan 2023 01:07:01 +0100 Subject: [PATCH] Fix error when OK-ing a text track dialog with no language (#2430). --- src/wx/dcp_text_track_dialog.cc | 13 +++++++++++++ src/wx/dcp_text_track_dialog.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/wx/dcp_text_track_dialog.cc b/src/wx/dcp_text_track_dialog.cc index be31de0ce..d033541d2 100644 --- a/src/wx/dcp_text_track_dialog.cc +++ b/src/wx/dcp_text_track_dialog.cc @@ -36,6 +36,9 @@ DCPTextTrackDialog::DCPTextTrackDialog (wxWindow* parent) _language = new LanguageTagWidget (this, wxT(""), boost::none); add (_language->sizer()); + _language->Changed.connect(boost::bind(&DCPTextTrackDialog::set_sensitivity, this)); + + set_sensitivity(); layout (); } @@ -46,3 +49,13 @@ DCPTextTrackDialog::get () const DCPOMATIC_ASSERT (_language->get()); return DCPTextTrack(wx_to_std(_name->GetValue()), _language->get()); } + + +void +DCPTextTrackDialog::set_sensitivity() +{ + if (auto ok = dynamic_cast(FindWindowById(wxID_OK, this))) { + ok->Enable(static_cast(_language->get())); + } +} + diff --git a/src/wx/dcp_text_track_dialog.h b/src/wx/dcp_text_track_dialog.h index 41a91b0d0..c1d7eec56 100644 --- a/src/wx/dcp_text_track_dialog.h +++ b/src/wx/dcp_text_track_dialog.h @@ -39,6 +39,8 @@ public: DCPTextTrack get () const; private: + void set_sensitivity(); + wxTextCtrl* _name; LanguageTagWidget* _language; }; -- 2.30.2