Fix error when OK-ing a text track dialog with no language (#2430).
authorCarl Hetherington <cth@carlh.net>
Sat, 21 Jan 2023 00:07:01 +0000 (01:07 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 21 Jan 2023 00:07:01 +0000 (01:07 +0100)
src/wx/dcp_text_track_dialog.cc
src/wx/dcp_text_track_dialog.h

index be31de0cea0ad323bc9661d66c623831f6ca7bb5..d033541d24e5d736b2d8de7b3bce34786a973a78 100644 (file)
@@ -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<wxButton *>(FindWindowById(wxID_OK, this))) {
+               ok->Enable(static_cast<bool>(_language->get()));
+       }
+}
+
index 41a91b0d0125fd30fa6c30981269810f145b835c..c1d7eec566920dae5aeb40304fbd39cc02a6db85 100644 (file)
@@ -39,6 +39,8 @@ public:
        DCPTextTrack get () const;
 
 private:
+       void set_sensitivity();
+
        wxTextCtrl* _name;
        LanguageTagWidget* _language;
 };