);
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__
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> (
_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));
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"));
- }
}
}
}
-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 ()
{
_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);
}