X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=fe76c60436f2a50732872abc810a4a74444d5e66;hp=3275984e641d090fa82be86ee56cf34fcc46eca5;hb=451ab9374cc32483489cdde27a9382b546cdecf5;hpb=5d3c9573914a61db10b24ce7e0cef00902c2912c diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 3275984e6..fe76c6043 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -46,6 +46,7 @@ #include "wx/templates_dialog.h" #include "wx/nag_dialog.h" #include "wx/export_dialog.h" +#include "wx/export_subtitles_dialog.h" #include "wx/paste_dialog.h" #include "wx/focus_manager.h" #include "wx/html_dialog.h" @@ -228,6 +229,7 @@ enum { ID_jobs_make_dkdms, ID_jobs_make_self_dkdm, ID_jobs_export, + ID_jobs_export_subtitles, ID_jobs_send_dcp_to_tms, ID_jobs_show_dcp, ID_jobs_open_dcp_in_player, @@ -321,6 +323,7 @@ public: Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_make_dcp_batch, this), ID_jobs_make_dcp_batch); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_make_self_dkdm, this), ID_jobs_make_self_dkdm); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_export, this), ID_jobs_export); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_export_subtitles, this), ID_jobs_export_subtitles); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_send_dcp_to_tms, this), ID_jobs_send_dcp_to_tms); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_show_dcp, this), ID_jobs_show_dcp); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_open_dcp_in_player, this), ID_jobs_open_dcp_in_player); @@ -989,6 +992,33 @@ private: d->Destroy (); } + + void jobs_export_subtitles () + { + ExportSubtitlesDialog* d = new ExportSubtitlesDialog (this, _film->isdcf_name(true)); + if (d->ShowModal() == wxID_OK) { + if (boost::filesystem::exists(d->path())) { + bool ok = confirm_dialog( + this, + wxString::Format (_("File %s already exists. Do you want to overwrite it?"), std_to_wx(d->path().string()).data()) + ); + + if (!ok) { + d->Destroy (); + return; + } + } + + shared_ptr job (new TranscodeJob (_film)); + job->set_encoder ( + shared_ptr(new SubtitleEncoder(_film, job, d->path(), d->split_reels())) + ); + JobManager::instance()->add (job); + } + d->Destroy (); + } + + void jobs_send_dcp_to_tms () { _film->send_dcp_to_tms (); @@ -1321,7 +1351,8 @@ private: add_item (jobs_menu, _("Make &DKDMs...\tCtrl-D"), ID_jobs_make_dkdms, NEEDS_FILM); add_item (jobs_menu, _("Make DKDM for DCP-o-matic..."), ID_jobs_make_self_dkdm, NEEDS_FILM | NEEDS_ENCRYPTION); jobs_menu->AppendSeparator (); - add_item (jobs_menu, _("Export...\tCtrl-E"), ID_jobs_export, NEEDS_FILM); + add_item (jobs_menu, _("Export video file...\tCtrl-E"), ID_jobs_export, NEEDS_FILM); + add_item (jobs_menu, _("Export subtitles..."), ID_jobs_export_subtitles, NEEDS_FILM); jobs_menu->AppendSeparator (); add_item (jobs_menu, _("&Send DCP to TMS"), ID_jobs_send_dcp_to_tms, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL);