summaryrefslogtreecommitdiff
path: root/src/wx/smpte_metadata_dialog.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-03-23 00:50:11 +0100
committerCarl Hetherington <cth@carlh.net>2021-03-31 22:48:53 +0200
commite0a70cd5cfb11fc2de167f3146acdd437a6faa82 (patch)
tree022ceef78d7daa12bccf519ebab0db5e23a3feb6 /src/wx/smpte_metadata_dialog.cc
parent8640da877450479a85c73b2a921897d83b478c84 (diff)
Put subtitle language back into content from the film (#1930).
This also adds the main/additional language flag. Of all the considerations about how to specify subtitle language, the most important seems to be that the language specification happens for the content where the language is; i.e. in the content text tab.
Diffstat (limited to 'src/wx/smpte_metadata_dialog.cc')
-rw-r--r--src/wx/smpte_metadata_dialog.cc101
1 files changed, 1 insertions, 100 deletions
diff --git a/src/wx/smpte_metadata_dialog.cc b/src/wx/smpte_metadata_dialog.cc
index 36cf48489..470e9317e 100644
--- a/src/wx/smpte_metadata_dialog.cc
+++ b/src/wx/smpte_metadata_dialog.cc
@@ -91,38 +91,6 @@ SMPTEMetadataDialog::main_panel (wxWindow* parent)
);
sizer->Add (_audio_language->sizer(), 0, wxEXPAND);
- _enable_main_subtitle_language = new wxCheckBox (panel, wxID_ANY, _("Main subtitle language"));
- sizer->Add (_enable_main_subtitle_language, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_GAP);
- auto subtitle_languages = film()->subtitle_languages();
- _main_subtitle_language = new LanguageTagWidget(
- panel,
- _("The main language that is displayed in the film's subtitles"),
- subtitle_languages.empty() ? dcp::LanguageTag("en-US") : subtitle_languages.front()
- );
- sizer->Add (_main_subtitle_language->sizer(), 0, wxEXPAND);
-
- {
- int flags = wxALIGN_TOP | wxRIGHT | wxTOP;
-#ifdef __WXOSX__
- flags |= wxALIGN_RIGHT;
-#endif
- auto m = create_label (panel, _("Additional subtitle languages"), true);
- sizer->Add (m, 0, flags, DCPOMATIC_SIZER_GAP);
- }
-
- vector<EditableListColumn> columns;
- columns.push_back (EditableListColumn("Language", 250, true));
- _additional_subtitle_languages = new EditableList<dcp::LanguageTag, LanguageTagDialog> (
- panel,
- columns,
- boost::bind(&SMPTEMetadataDialog::additional_subtitle_languages, this),
- boost::bind(&SMPTEMetadataDialog::set_additional_subtitle_languages, this, _1),
- boost::bind(&additional_subtitle_language_column, _1, _2),
- true,
- false
- );
- sizer->Add (_additional_subtitle_languages, 1, wxEXPAND);
-
{
int flags = wxALIGN_TOP | wxRIGHT | wxTOP;
#ifdef __WXOSX__
@@ -132,7 +100,7 @@ SMPTEMetadataDialog::main_panel (wxWindow* parent)
sizer->Add (m, 0, flags, DCPOMATIC_SIZER_GAP);
}
- columns.clear ();
+ vector<EditableListColumn> columns;
columns.push_back (EditableListColumn("Agency", 200, true));
columns.push_back (EditableListColumn("Label", 50, true));
_ratings = new EditableList<dcp::Rating, RatingDialog> (
@@ -267,9 +235,7 @@ SMPTEMetadataDialog::SMPTEMetadataDialog (wxWindow* parent, weak_ptr<Film> weak_
_name_language->Changed.connect (boost::bind(&SMPTEMetadataDialog::name_language_changed, this, _1));
_audio_language->Changed.connect (boost::bind(&SMPTEMetadataDialog::audio_language_changed, this, _1));
- _enable_main_subtitle_language->Bind (wxEVT_CHECKBOX, boost::bind(&SMPTEMetadataDialog::enable_main_subtitle_changed, this));
_edit_release_territory->Bind (wxEVT_BUTTON, boost::bind(&SMPTEMetadataDialog::edit_release_territory, this));
- _main_subtitle_language->Changed.connect (boost::bind(&SMPTEMetadataDialog::main_subtitle_language_changed, this, _1));
_version_number->Bind (wxEVT_SPINCTRL, boost::bind(&SMPTEMetadataDialog::version_number_changed, this));
_status->Bind (wxEVT_CHOICE, boost::bind(&SMPTEMetadataDialog::status_changed, this));
_enable_chain->Bind (wxEVT_CHECKBOX, boost::bind(&SMPTEMetadataDialog::enable_chain_changed, this));
@@ -362,14 +328,6 @@ SMPTEMetadataDialog::film_changed (ChangeType type, Film::Property property)
checked_set (_luminance_value, 4.5);
checked_set (_luminance_unit, 1);
}
- } else if (property == Film::Property::SUBTITLE_LANGUAGES) {
- auto languages = film()->subtitle_languages();
- checked_set (_enable_main_subtitle_language, !languages.empty());
- if (!languages.empty()) {
- _main_subtitle_language->set (languages.front());
- } else {
- _main_subtitle_language->set (dcp::LanguageTag("en-US"));
- }
}
}
@@ -496,20 +454,6 @@ SMPTEMetadataDialog::luminance_changed ()
void
-SMPTEMetadataDialog::enable_main_subtitle_changed ()
-{
- setup_sensitivity ();
- if (_enable_main_subtitle_language->GetValue()) {
- film()->set_subtitle_language (_main_subtitle_language->get());
- } else {
- set_additional_subtitle_languages (vector<dcp::LanguageTag>());
- _additional_subtitle_languages->refresh ();
- film()->unset_subtitle_language ();
- }
-}
-
-
-void
SMPTEMetadataDialog::setup_sensitivity ()
{
{
@@ -521,49 +465,6 @@ SMPTEMetadataDialog::setup_sensitivity ()
_chain->Enable (_enable_chain->GetValue());
_distributor->Enable (_enable_distributor->GetValue());
_facility->Enable (_enable_facility->GetValue());
-
- {
- auto const enabled = _enable_main_subtitle_language->GetValue();
- _main_subtitle_language->enable (enabled);
- _additional_subtitle_languages->Enable (enabled);
- }
-}
-
-
-void
-SMPTEMetadataDialog::main_subtitle_language_changed (dcp::LanguageTag tag)
-{
- auto existing = film()->subtitle_languages();
- if (existing.empty()) {
- existing.push_back (tag);
- } else {
- existing[0] = tag;
- }
-
- film()->set_subtitle_languages (existing);
-}
-
-
-vector<dcp::LanguageTag>
-SMPTEMetadataDialog::additional_subtitle_languages ()
-{
- auto all = film()->subtitle_languages();
- if (all.empty()) {
- return all;
- }
-
- return vector<dcp::LanguageTag>(all.begin() + 1, all.end());
-}
-
-
-void
-SMPTEMetadataDialog::set_additional_subtitle_languages (vector<dcp::LanguageTag> languages)
-{
- auto all = film()->subtitle_languages();
- DCPOMATIC_ASSERT (!all.empty());
- all.resize (1);
- copy (languages.begin(), languages.end(), back_inserter(all));
- film()->set_subtitle_languages (all);
}