X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fisdcf_metadata_dialog.cc;h=3d79f3bf6db5f6377538cdb43fbad686ca4a7176;hp=bef0851e0b46578017d514561b55f66bf3308fb9;hb=9001a63be211fd8e97431f8fc07c66af01554f5a;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05 diff --git a/src/wx/isdcf_metadata_dialog.cc b/src/wx/isdcf_metadata_dialog.cc index bef0851e0..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 @@ -27,7 +28,10 @@ using boost::shared_ptr; -/** @param threed true if the film is in 3D */ +/** @param parent Parent window. + * @param dm Initial ISDCF metadata. + * @param threed true if the film is in 3D. + */ ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bool threed) : TableDialog (parent, _("ISDCF name"), 2, 1, true) { @@ -37,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)); @@ -52,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) { @@ -78,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)); @@ -90,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 { @@ -100,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 ());