X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic_kdm.cc;h=5afcb17a4d077d56306257917c83aeb6fa048ef8;hb=e510145e7ff10e4fb6795e9eb8dcf339bfdeb21b;hp=c686a974de4d0746bc539b120cec56b7ad32677a;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05;p=dcpomatic.git diff --git a/src/tools/dcpomatic_kdm.cc b/src/tools/dcpomatic_kdm.cc index c686a974d..5afcb17a4 100644 --- a/src/tools/dcpomatic_kdm.cc +++ b/src/tools/dcpomatic_kdm.cc @@ -126,42 +126,51 @@ public: wxPanel* overall_panel = new wxPanel (this, wxID_ANY); wxBoxSizer* main_sizer = new wxBoxSizer (wxHORIZONTAL); - wxBoxSizer* vertical = new wxBoxSizer (wxVERTICAL); + wxBoxSizer* horizontal = new wxBoxSizer (wxHORIZONTAL); + wxBoxSizer* left = new wxBoxSizer (wxVERTICAL); + wxBoxSizer* right = new wxBoxSizer (wxVERTICAL); + + horizontal->Add (left, 1, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_X_GAP * 2); + horizontal->Add (right, 1, wxEXPAND); wxFont subheading_font (*wxNORMAL_FONT); subheading_font.SetWeight (wxFONTWEIGHT_BOLD); wxStaticText* h = new wxStaticText (overall_panel, wxID_ANY, _("Screens")); h->SetFont (subheading_font); - vertical->Add (h, 0, wxALIGN_CENTER_VERTICAL); + left->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP); _screens = new ScreensPanel (overall_panel); - vertical->Add (_screens, 1, wxEXPAND | wxALL, DCPOMATIC_SIZER_Y_GAP); + left->Add (_screens, 1, wxEXPAND | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP); + /// TRANSLATORS: translate the word "Timing" here; do not include the "KDM|" prefix + h = new wxStaticText (overall_panel, wxID_ANY, S_("KDM|Timing")); + h->SetFont (subheading_font); + right->Add (h, 0, wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_Y_GAP * 2); _timing = new KDMTimingPanel (overall_panel); - vertical->Add (_timing, 0, wxALL, DCPOMATIC_SIZER_Y_GAP); + right->Add (_timing, 0, wxALL, DCPOMATIC_SIZER_Y_GAP); h = new wxStaticText (overall_panel, wxID_ANY, _("DKDM")); h->SetFont (subheading_font); - vertical->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2); + right->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2); vector columns; columns.push_back (wx_to_std (_("CPL"))); _dkdm = new EditableList ( overall_panel, columns, bind (&DOMFrame::dkdms, this), bind (&DOMFrame::set_dkdms, this, _1), bind (&always_valid), bind (&column, _1), false ); - vertical->Add (_dkdm, 0, wxEXPAND | wxALL, DCPOMATIC_SIZER_Y_GAP); + right->Add (_dkdm, 0, wxEXPAND | wxALL, DCPOMATIC_SIZER_Y_GAP); h = new wxStaticText (overall_panel, wxID_ANY, _("Output")); h->SetFont (subheading_font); - vertical->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2); + right->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2); /* XXX: hard-coded non-interop here */ _output = new KDMOutputPanel (overall_panel, false); - vertical->Add (_output, 0, wxALL, DCPOMATIC_SIZER_Y_GAP); + right->Add (_output, 0, wxALL, DCPOMATIC_SIZER_Y_GAP); _create = new wxButton (overall_panel, wxID_ANY, _("Create KDMs")); - vertical->Add (_create, 0, wxALL, DCPOMATIC_SIZER_GAP); + right->Add (_create, 0, wxALL, DCPOMATIC_SIZER_GAP); - main_sizer->Add (vertical, 1, wxALL | wxEXPAND, DCPOMATIC_DIALOG_BORDER); + main_sizer->Add (horizontal, 1, wxALL | wxEXPAND, DCPOMATIC_DIALOG_BORDER); overall_panel->SetSizer (main_sizer); /* Instantly save any config changes when using a DCP-o-matic GUI */ @@ -288,8 +297,13 @@ private: screen_kdms.push_back (ScreenKDM (i, kdm.encrypt (signer, i->recipient.get(), i->trusted_devices, _output->formulation()))); } + NameFormat::Map name_values; + name_values["film_name"] = decrypted.content_title_text(); + name_values["from"] = dcp::LocalTime(_timing->from()).date() + " " + dcp::LocalTime(_timing->from()).time_of_day(); + name_values["to"] = dcp::LocalTime(_timing->until()).date() + " " + dcp::LocalTime(_timing->until()).time_of_day(); + if (_output->write_to()) { - ScreenKDM::write_files (decrypted.content_title_text(), screen_kdms, _output->directory()); + ScreenKDM::write_files (screen_kdms, _output->directory(), _output->name_format(), name_values); /* XXX: proper plural form support in wxWidgets? */ wxString s = screen_kdms.size() == 1 ? _("%d KDM written to %s") : _("%d KDMs written to %s"); message_dialog ( @@ -302,10 +316,10 @@ private: film_name = decrypted.content_title_text (); } shared_ptr job (new SendKDMEmailJob ( - film_name, - decrypted.content_title_text(), - _timing->from(), _timing->until(), CinemaKDMs::collect (screen_kdms), + _output->name_format(), + name_values, + decrypted.content_title_text(), shared_ptr () ));