X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fmetadata_dialog.cc;h=69dee0c4612d428864b9f6e0ea84c7f301f7d42e;hb=1346760b389b4f388fd9e2ae029cfb3d950734a6;hp=c0e543b3499f3f15c398f41a14960ec36b4af6fd;hpb=8336cba4e6a8c594680696d2337ddc800d84c267;p=dcpomatic.git diff --git a/src/wx/metadata_dialog.cc b/src/wx/metadata_dialog.cc index c0e543b34..69dee0c46 100644 --- a/src/wx/metadata_dialog.cc +++ b/src/wx/metadata_dialog.cc @@ -21,14 +21,18 @@ #include "dcpomatic_button.h" #include "full_language_tag_dialog.h" +#include "language_tag_widget.h" #include "metadata_dialog.h" #include "wx_util.h" #include "lib/film.h" -#include -#include +#include +LIBDCP_DISABLE_WARNINGS #include #include #include +LIBDCP_ENABLE_WARNINGS +#include +#include using std::weak_ptr; @@ -73,6 +77,7 @@ MetadataDialog::setup () overall_sizer->Layout (); overall_sizer->SetSizeHints (this); + _sign_language_video_language->Changed.connect (boost::bind(&MetadataDialog::sign_language_video_language_changed, this)); _edit_release_territory->Bind (wxEVT_BUTTON, boost::bind(&MetadataDialog::edit_release_territory, this)); _enable_release_territory->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::enable_release_territory_changed, this)); _enable_facility->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::enable_facility_changed, this)); @@ -92,6 +97,7 @@ MetadataDialog::setup () _film_changed_connection = film()->Change.connect(boost::bind(&MetadataDialog::film_changed, this, _1, _2)); film_changed (ChangeType::DONE, Film::Property::RELEASE_TERRITORY); + film_changed (ChangeType::DONE, Film::Property::SIGN_LANGUAGE_VIDEO_LANGUAGE); film_changed (ChangeType::DONE, Film::Property::FACILITY); film_changed (ChangeType::DONE, Film::Property::STUDIO); film_changed (ChangeType::DONE, Film::Property::TEMP_VERSION); @@ -112,7 +118,9 @@ MetadataDialog::film_changed (ChangeType type, Film::Property property) return; } - if (property == Film::Property::RELEASE_TERRITORY) { + if (property == Film::Property::SIGN_LANGUAGE_VIDEO_LANGUAGE) { + _sign_language_video_language->set (film()->sign_language_video_language()); + } else if (property == Film::Property::RELEASE_TERRITORY) { auto rt = film()->release_territory(); checked_set (_enable_release_territory, static_cast(rt)); if (rt) { @@ -155,6 +163,8 @@ MetadataDialog::film_changed (ChangeType type, Film::Property property) checked_set (_luminance_unit, 1); break; } + } else { + checked_set (_luminance_unit, 1); } } } @@ -194,6 +204,7 @@ MetadataDialog::edit_release_territory () void MetadataDialog::setup_sensitivity () { + _sign_language_video_language->enable (film()->has_sign_language_video_channel()); auto const enabled = _enable_release_territory->GetValue(); _release_territory_text->Enable (enabled); _edit_release_territory->Enable (enabled); @@ -220,6 +231,10 @@ MetadataDialog::enable_release_territory_changed () void MetadataDialog::setup_advanced (wxPanel* panel, wxSizer* sizer) { + add_label_to_sizer (sizer, panel, _("Sign language video language"), true, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT); + _sign_language_video_language = new LanguageTagWidget (panel, _("Language used for any sign language video track"), {}, {}); + sizer->Add (_sign_language_video_language->sizer(), 1, wxEXPAND); + _enable_facility = new wxCheckBox (panel, wxID_ANY, _("Facility")); sizer->Add (_enable_facility, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL); _facility = new wxTextCtrl (panel, wxID_ANY); @@ -256,6 +271,7 @@ MetadataDialog::setup_advanced (wxPanel* panel, wxSizer* sizer) { auto s = new wxBoxSizer (wxHORIZONTAL); _luminance_value = new wxSpinCtrlDouble (panel, wxID_ANY); + _luminance_value->SetRange (0.1, 32.0); _luminance_value->SetDigits (1); _luminance_value->SetIncrement (0.1); s->Add (_luminance_value, 0); @@ -264,7 +280,7 @@ MetadataDialog::setup_advanced (wxPanel* panel, wxSizer* sizer) sizer->Add (s, 1, wxEXPAND); } - _luminance_unit->Append (wxString::FromUTF8(_("candela per m²"))); + _luminance_unit->Append (_("candela per m²")); _luminance_unit->Append (_("foot lambert")); } @@ -385,3 +401,10 @@ MetadataDialog::luminance_changed () film()->set_luminance (dcp::Luminance(_luminance_value->GetValue(), unit)); } + +void +MetadataDialog::sign_language_video_language_changed () +{ + film()->set_sign_language_video_language(_sign_language_video_language->get()); +} +