X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fisdcf_metadata_dialog.cc;h=3d79f3bf6db5f6377538cdb43fbad686ca4a7176;hb=a713e8258acc3f0e960c4e87ba8684902d29a591;hp=ee7d4ae70c82309b587723d6cae1c331fa3ffabe;hpb=67a68bd971ebe1b35daa3f75873b4ccb53c00ba0;p=dcpomatic.git diff --git a/src/wx/isdcf_metadata_dialog.cc b/src/wx/isdcf_metadata_dialog.cc index ee7d4ae70..3d79f3bf6 100644 --- a/src/wx/isdcf_metadata_dialog.cc +++ b/src/wx/isdcf_metadata_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2019 Carl Hetherington This file is part of DCP-o-matic. @@ -20,6 +20,7 @@ #include "isdcf_metadata_dialog.h" #include "wx_util.h" +#include "check_box.h" #include "lib/film.h" #include #include @@ -40,8 +41,15 @@ ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bo add (_("Audio Language (e.g. EN)"), true); _audio_language = add (new wxTextCtrl (this, wxID_ANY)); - add (_("Subtitle Language (e.g. FR)"), true); - _subtitle_language = add (new wxTextCtrl (this, wxID_ANY)); + _enable_subtitle_language = add (new wxCheckBox(this, wxID_ANY, _("Subtitle language (e.g. FR)"))); + _subtitle_language = add (new wxTextCtrl(this, wxID_ANY)); + + wxStaticText* subtitle_note = add (_("(use this to override languages specified\nin the 'timed text' tab)"), false); + wxFont font = subtitle_note->GetFont(); + font.SetStyle (wxFONTSTYLE_ITALIC); + font.SetPointSize (font.GetPointSize() - 1); + subtitle_note->SetFont (font); + add_spacer (); add (_("Territory (e.g. UK)"), true); _territory = add (new wxTextCtrl (this, wxID_ANY)); @@ -55,19 +63,19 @@ ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bo add (_("Facility (e.g. DLA)"), true); _facility = add (new wxTextCtrl (this, wxID_ANY)); - _temp_version = add (new wxCheckBox (this, wxID_ANY, _("Temp version"))); + _temp_version = add (new CheckBox(this, _("Temp version"))); add_spacer (); - _pre_release = add (new wxCheckBox (this, wxID_ANY, _("Pre-release"))); + _pre_release = add (new CheckBox(this, _("Pre-release"))); add_spacer (); - _red_band = add (new wxCheckBox (this, wxID_ANY, _("Red band"))); + _red_band = add (new CheckBox(this, _("Red band"))); add_spacer (); add (_("Chain"), true); _chain = add (new wxTextCtrl (this, wxID_ANY)); - _two_d_version_of_three_d = add (new wxCheckBox (this, wxID_ANY, _("2D version of content available in 3D"))); + _two_d_version_of_three_d = add (new CheckBox(this, _("2D version of content available in 3D"))); add_spacer (); if (threed) { @@ -81,7 +89,8 @@ ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bo _content_version->SetValue (dm.content_version); _audio_language->SetValue (std_to_wx (dm.audio_language)); - _subtitle_language->SetValue (std_to_wx (dm.subtitle_language)); + _enable_subtitle_language->SetValue (static_cast(dm.subtitle_language)); + _subtitle_language->SetValue (std_to_wx(dm.subtitle_language.get_value_or(""))); _territory->SetValue (std_to_wx (dm.territory)); _rating->SetValue (std_to_wx (dm.rating)); _studio->SetValue (std_to_wx (dm.studio)); @@ -93,9 +102,19 @@ ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bo _two_d_version_of_three_d->SetValue (dm.two_d_version_of_three_d); _mastered_luminance->SetValue (std_to_wx (dm.mastered_luminance)); + _enable_subtitle_language->Bind (wxEVT_CHECKBOX, boost::bind(&ISDCFMetadataDialog::setup_sensitivity, this)); + + setup_sensitivity (); + layout (); } +void +ISDCFMetadataDialog::setup_sensitivity () +{ + _subtitle_language->Enable (_enable_subtitle_language->GetValue()); +} + ISDCFMetadata ISDCFMetadataDialog::isdcf_metadata () const { @@ -103,7 +122,9 @@ ISDCFMetadataDialog::isdcf_metadata () const dm.content_version = _content_version->GetValue (); dm.audio_language = wx_to_std (_audio_language->GetValue ()); - dm.subtitle_language = wx_to_std (_subtitle_language->GetValue ()); + if (_enable_subtitle_language->GetValue()) { + dm.subtitle_language = wx_to_std (_subtitle_language->GetValue()); + } dm.territory = wx_to_std (_territory->GetValue ()); dm.rating = wx_to_std (_rating->GetValue ()); dm.studio = wx_to_std (_studio->GetValue ());