X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffull_config_dialog.cc;h=c1c36c4a4e370dbc3d74edd305fdf30c6270f167;hb=HEAD;hp=59c1d4c9ffdae06ef3dae5ef70671b4827952ec6;hpb=1695ad102d21c601592e8895d8b402ceebf4f1b0;p=dcpomatic.git diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc index 59c1d4c9f..c1c36c4a4 100644 --- a/src/wx/full_config_dialog.cc +++ b/src/wx/full_config_dialog.cc @@ -49,7 +49,7 @@ #include "lib/config.h" #include "lib/cross.h" #include "lib/dcp_content_type.h" -#include "lib/emailer.h" +#include "lib/email.h" #include "lib/exceptions.h" #include "lib/filter.h" #include "lib/log.h" @@ -57,6 +57,7 @@ #include "lib/util.h" #include #include +#include #include #include LIBDCP_DISABLE_WARNINGS @@ -114,12 +115,12 @@ private: ++r; add_label_to_sizer (table, _panel, _("Configuration file"), true, wxGBPosition (r, 0)); - _config_file = new FilePickerCtrl (_panel, _("Select configuration file"), "*.xml", true, false); + _config_file = new FilePickerCtrl(_panel, _("Select configuration file"), "*.xml", true, false, "ConfigFilePath"); table->Add (_config_file, wxGBPosition (r, 1)); ++r; add_label_to_sizer (table, _panel, _("Cinema and screen database file"), true, wxGBPosition (r, 0)); - _cinemas_file = new FilePickerCtrl (_panel, _("Select cinema and screen database file"), "*.xml", true, false); + _cinemas_file = new FilePickerCtrl(_panel, _("Select cinema and screen database file"), "*.xml", true, false, "CinemaDatabasePath"); table->Add (_cinemas_file, wxGBPosition (r, 1)); auto export_cinemas = new Button (_panel, _("Export...")); table->Add (export_cinemas, wxGBPosition (r, 2)); @@ -186,7 +187,7 @@ private: ); if (dialog.ShowModal() == wxID_OK) { - boost::filesystem::copy_file(Config::instance()->cinemas_file(), wx_to_std(dialog.GetPath()), boost::filesystem::copy_option::overwrite_if_exists); + dcp::filesystem::copy_file(Config::instance()->cinemas_file(), wx_to_std(dialog.GetPath()), boost::filesystem::copy_option::overwrite_if_exists); } } @@ -215,13 +216,13 @@ private: void config_file_changed () { auto config = Config::instance(); - boost::filesystem::path new_file = wx_to_std(_config_file->GetPath()); - if (new_file == config->config_read_file()) { + auto const new_file = _config_file->path(); + if (!new_file || *new_file == config->config_read_file()) { return; } bool copy_and_link = true; - if (boost::filesystem::exists(new_file)) { - ConfigMoveDialog dialog(_panel, new_file); + if (dcp::filesystem::exists(*new_file)) { + ConfigMoveDialog dialog(_panel, *new_file); if (dialog.ShowModal() == wxID_OK) { copy_and_link = false; } @@ -230,16 +231,18 @@ private: if (copy_and_link) { config->write (); if (new_file != config->config_read_file()) { - config->copy_and_link (new_file); + config->copy_and_link(*new_file); } } else { - config->link (new_file); + config->link(*new_file); } } void cinemas_file_changed () { - Config::instance()->set_cinemas_file (wx_to_std (_cinemas_file->GetPath ())); + if (auto path = _cinemas_file->path()) { + Config::instance()->set_cinemas_file(*path); + } } void default_add_file_location_changed() @@ -977,7 +980,7 @@ private: return; } - Emailer emailer( + Email email( wx_to_std(dialog.from()), { wx_to_std(dialog.to()) }, wx_to_std(_("DCP-o-matic test email")), @@ -985,7 +988,7 @@ private: ); auto config = Config::instance(); try { - emailer.send(config->mail_server(), config->mail_port(), config->mail_protocol(), config->mail_user(), config->mail_password()); + email.send(config->mail_server(), config->mail_port(), config->mail_protocol(), config->mail_user(), config->mail_password()); } catch (NetworkError& e) { error_dialog(_panel, std_to_wx(e.summary()), std_to_wx(e.detail().get_value_or(""))); return; @@ -1517,7 +1520,7 @@ private: { add_label_to_sizer(table, _panel, _("Maximum JPEG2000 bandwidth"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); - wxBoxSizer* s = new wxBoxSizer(wxHORIZONTAL); + auto s = new wxBoxSizer(wxHORIZONTAL); _maximum_j2k_bandwidth = new wxSpinCtrl(_panel); s->Add(_maximum_j2k_bandwidth, 1); add_label_to_sizer(s, _panel, _("Mbit/s"), false, 0, wxLEFT | wxALIGN_CENTRE_VERTICAL); @@ -1544,6 +1547,15 @@ private: checkbox(_("Allow creation of DCPs with 96kHz audio"), _allow_96khz_audio); checkbox(_("Allow mapping to all audio channels"), _use_all_audio_channels); + checkbox(_("Allow use of SMPTE Bv2.0"), _allow_smpte_bv20); + + { + add_label_to_sizer(table, _panel, _("ISDCF name part length"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); + auto s = new wxBoxSizer(wxHORIZONTAL); + _isdcf_name_part_length = new wxSpinCtrl(_panel); + s->Add(_isdcf_name_part_length, 1); + table->Add(s, 1); + } _maximum_j2k_bandwidth->SetRange(1, 1000); _maximum_j2k_bandwidth->Bind(wxEVT_SPINCTRL, boost::bind(&NonStandardPage::maximum_j2k_bandwidth_changed, this)); @@ -1551,6 +1563,9 @@ private: _allow_any_container->bind(&NonStandardPage::allow_any_container_changed, this); _allow_96khz_audio->bind(&NonStandardPage::allow_96khz_audio_changed, this); _use_all_audio_channels->bind(&NonStandardPage::use_all_channels_changed, this); + _allow_smpte_bv20->bind(&NonStandardPage::allow_smpte_bv20_changed, this); + _isdcf_name_part_length->SetRange(1, 256); + _isdcf_name_part_length->Bind(wxEVT_SPINCTRL, boost::bind(&NonStandardPage::isdcf_name_part_length_changed, this)); } void config_changed() override @@ -1562,6 +1577,8 @@ private: checked_set(_allow_any_container, config->allow_any_container()); checked_set(_allow_96khz_audio, config->allow_96khz_audio()); checked_set(_use_all_audio_channels, config->use_all_audio_channels()); + checked_set(_allow_smpte_bv20, config->allow_smpte_bv20()); + checked_set(_isdcf_name_part_length, config->isdcf_name_part_length()); } void maximum_j2k_bandwidth_changed() @@ -1589,11 +1606,23 @@ private: Config::instance()->set_use_all_audio_channels(_use_all_audio_channels->GetValue()); } + void allow_smpte_bv20_changed() + { + Config::instance()->set_allow_smpte_bv20(_allow_smpte_bv20->GetValue()); + } + + void isdcf_name_part_length_changed() + { + Config::instance()->set_isdcf_name_part_length(_isdcf_name_part_length->GetValue()); + } + wxSpinCtrl* _maximum_j2k_bandwidth = nullptr; CheckBox* _allow_any_dcp_frame_rate = nullptr; CheckBox* _allow_any_container = nullptr; CheckBox* _allow_96khz_audio = nullptr; CheckBox* _use_all_audio_channels = nullptr; + CheckBox* _allow_smpte_bv20 = nullptr; + wxSpinCtrl* _isdcf_name_part_length = nullptr; }; @@ -1906,7 +1935,7 @@ create_full_config_dialog () the containing window doesn't shrink too much when we select those panels. This is obviously an unpleasant hack. */ - wxSize ps = wxSize (750, -1); + wxSize ps = wxSize(900, -1); int const border = 16; #else wxSize ps = wxSize (-1, -1);