summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-01-21 01:07:01 +0100
committerCarl Hetherington <cth@carlh.net>2023-01-21 01:07:01 +0100
commita9017504a0e3c152aba6ea8ac2dfa89183a362cb (patch)
tree93ea61a26ad888d691366dd3a04717c015ce9ec4 /src
parenta399d7c7b9239e055ba08a82b18eb68a511d1025 (diff)
Fix error when OK-ing a text track dialog with no language (#2430).
Diffstat (limited to 'src')
-rw-r--r--src/wx/dcp_text_track_dialog.cc13
-rw-r--r--src/wx/dcp_text_track_dialog.h2
2 files changed, 15 insertions, 0 deletions
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<wxButton *>(FindWindowById(wxID_OK, this))) {
+ ok->Enable(static_cast<bool>(_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;
};