X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Ffull_config_dialog.cc;h=8fc029f747c8388413e8a684101c22cb038d439b;hp=e39a10f09632516a15952bd0653954b6fee07adc;hb=96107588e0ddf383d21ff00b4d3febb313e43794;hpb=08b44e380c8be3a8cb2dacbd94049f09942dabc1 diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc index e39a10f09..8fc029f74 100644 --- a/src/wx/full_config_dialog.cc +++ b/src/wx/full_config_dialog.cc @@ -343,6 +343,14 @@ private: _kdm_type = new KDMChoice (_panel); table->Add (_kdm_type, 1, wxEXPAND); + add_label_to_sizer (table, _panel, _("Default KDM duration"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); + _kdm_duration = new wxSpinCtrl (_panel); + _kdm_duration_unit = new wxChoice (_panel, wxID_ANY); + auto kdm_duration_sizer = new wxBoxSizer (wxHORIZONTAL); + kdm_duration_sizer->Add (_kdm_duration, 0, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_GAP); + kdm_duration_sizer->Add (_kdm_duration_unit, 0, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_GAP); + table->Add (kdm_duration_sizer, 1, wxEXPAND); + table->Add (_use_isdcf_name_by_default = new CheckBox(_panel, _("Use ISDCF name by default")), 0, wxALIGN_CENTRE_VERTICAL); _still_length->SetRange (1, 3600); @@ -351,6 +359,13 @@ private: _directory->Bind (wxEVT_DIRPICKER_CHANGED, boost::bind (&DefaultsPage::directory_changed, this)); _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, boost::bind (&DefaultsPage::kdm_directory_changed, this)); _kdm_type->Bind (wxEVT_CHOICE, boost::bind(&DefaultsPage::kdm_type_changed, this)); + _kdm_duration_unit->Append (_("days")); + _kdm_duration_unit->Append (_("weeks")); + _kdm_duration_unit->Append (_("months")); + _kdm_duration_unit->Append (_("years")); + + _kdm_duration->Bind (wxEVT_SPINCTRL, boost::bind(&DefaultsPage::kdm_duration_changed, this)); + _kdm_duration_unit->Bind (wxEVT_CHOICE, boost::bind(&DefaultsPage::kdm_duration_changed, this)); _use_isdcf_name_by_default->Bind (wxEVT_CHECKBOX, boost::bind(&DefaultsPage::use_isdcf_name_by_default_changed, this)); @@ -436,9 +451,51 @@ private: } } + checked_set (_kdm_duration, config->default_kdm_duration().duration); + switch (config->default_kdm_duration().unit) { + case RoughDuration::Unit::DAYS: + _kdm_duration->SetRange(1, 365); + checked_set (_kdm_duration_unit, 0); + break; + case RoughDuration::Unit::WEEKS: + _kdm_duration->SetRange(1, 52); + checked_set (_kdm_duration_unit, 1); + break; + case RoughDuration::Unit::MONTHS: + _kdm_duration->SetRange(1, 12); + checked_set (_kdm_duration_unit, 2); + break; + case RoughDuration::Unit::YEARS: + _kdm_duration->SetRange(1, 40); + checked_set (_kdm_duration_unit, 3); + break; + } + setup_sensitivity (); } + void kdm_duration_changed () + { + auto config = Config::instance(); + auto duration = _kdm_duration->GetValue(); + RoughDuration::Unit unit = RoughDuration::Unit::DAYS; + switch (_kdm_duration_unit->GetSelection()) { + case 0: + unit = RoughDuration::Unit::DAYS; + break; + case 1: + unit = RoughDuration::Unit::WEEKS; + break; + case 2: + unit = RoughDuration::Unit::MONTHS; + break; + case 3: + unit = RoughDuration::Unit::YEARS; + break; + } + config->set_default_kdm_duration (RoughDuration(duration, unit)); + } + void j2k_bandwidth_changed () { Config::instance()->set_default_j2k_bandwidth (_j2k_bandwidth->GetValue() * 1000000); @@ -531,6 +588,8 @@ private: wxDirPickerCtrl* _kdm_directory; #endif KDMChoice* _kdm_type; + wxSpinCtrl* _kdm_duration; + wxChoice* _kdm_duration_unit; wxCheckBox* _use_isdcf_name_by_default; wxChoice* _container; wxChoice* _dcp_content_type; @@ -573,7 +632,9 @@ private: columns, boost::bind (&Config::servers, Config::instance()), boost::bind (&Config::set_servers, Config::instance(), _1), - boost::bind (&EncodingServersPage::server_column, this, _1) + boost::bind (&EncodingServersPage::server_column, this, _1), + false, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE ); _panel->GetSizer()->Add (_servers_list, 1, wxEXPAND | wxALL, _border); @@ -929,7 +990,10 @@ private: bind (&Config::set_kdm_cc, Config::instance(), _1), [] (string s, int) { return s; - }); + }, + true, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE + ); table->Add (_cc, 1, wxEXPAND | wxALL); add_label_to_sizer (table, _panel, _("BCC address"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); @@ -1063,7 +1127,10 @@ private: bind (&Config::set_notification_cc, Config::instance(), _1), [] (string s, int) { return s; - }); + }, + true, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE + ); table->Add (_cc, 1, wxEXPAND | wxALL); add_label_to_sizer (table, _panel, _("BCC address"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); @@ -1415,24 +1482,25 @@ private: table->AddSpacer (0); _allow_any_dcp_frame_rate = new CheckBox (_panel, _("Allow any DCP frame rate")); - table->Add (_allow_any_dcp_frame_rate, 1, wxEXPAND | wxALL); + table->Add (_allow_any_dcp_frame_rate, 1, wxEXPAND | wxLEFT, DCPOMATIC_SIZER_GAP); table->AddSpacer (0); _allow_any_container = new CheckBox (_panel, _("Allow full-frame and non-standard container ratios")); - table->Add (_allow_any_container, 1, wxEXPAND | wxALL); - restart = add_label_to_sizer (table, _panel, _("(restart DCP-o-matic to see all ratios)"), false); + table->Add (_allow_any_container, 1, wxEXPAND | wxLEFT, DCPOMATIC_SIZER_GAP); + restart = new StaticText (_panel, _("(restart DCP-o-matic to see all ratios)")); + table->Add (restart, 1, wxEXPAND | wxALL | wxALIGN_CENTRE_VERTICAL); restart->SetFont (font); _allow_96khz_audio = new CheckBox (_panel, _("Allow creation of DCPs with 96kHz audio")); - table->Add (_allow_96khz_audio, 1, wxEXPAND | wxALL); + table->Add (_allow_96khz_audio, 1, wxEXPAND | wxLEFT, DCPOMATIC_SIZER_GAP); table->AddSpacer (0); _show_experimental_audio_processors = new CheckBox (_panel, _("Show experimental audio processors")); - table->Add (_show_experimental_audio_processors, 1, wxEXPAND | wxALL); + table->Add (_show_experimental_audio_processors, 1, wxEXPAND | wxLEFT, DCPOMATIC_SIZER_GAP); table->AddSpacer (0); _only_servers_encode = new CheckBox (_panel, _("Only servers encode")); - table->Add (_only_servers_encode, 1, wxEXPAND | wxALL); + table->Add (_only_servers_encode, 1, wxEXPAND | wxLEFT, DCPOMATIC_SIZER_GAP); table->AddSpacer (0); { @@ -1450,7 +1518,7 @@ private: align->Add (format, 0, wxTOP, 2); table->Add (align, 0, wxALIGN_RIGHT | wxRIGHT, DCPOMATIC_SIZER_GAP - 2); #else - table->Add (format, 0, wxTOP | wxRIGHT | wxALIGN_TOP, DCPOMATIC_SIZER_GAP); + table->Add (format, 0, wxTOP | wxLEFT | wxRIGHT | wxALIGN_TOP, DCPOMATIC_SIZER_GAP); #endif dcp::NameFormat::Map titles; titles['t'] = wx_to_std (_("type (cpl/pkl)")); @@ -1469,7 +1537,7 @@ private: align->Add (format, 0, wxTOP, 2); table->Add (align, 0, wxALIGN_RIGHT | wxRIGHT, DCPOMATIC_SIZER_GAP - 2); #else - table->Add (format, 0, wxTOP | wxRIGHT | wxALIGN_TOP, DCPOMATIC_SIZER_GAP); + table->Add (format, 0, wxTOP | wxLEFT | wxRIGHT | wxALIGN_TOP, DCPOMATIC_SIZER_GAP); #endif dcp::NameFormat::Map titles; titles['t'] = wx_to_std (_("type (j2c/pcm/sub)"));