X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fexport_dialog.cc;h=5fc4036feddfce2df9b14bb97692dee26a5cf7a7;hb=95c48153421b1a6e0d7ca6cf5e67cd7623c03dc7;hp=e90686216665a498336fbc8f8e39c07a690b74b3;hpb=d5ba7d135293103dba55196a3d9a9342795d6188;p=dcpomatic.git diff --git a/src/wx/export_dialog.cc b/src/wx/export_dialog.cc index e90686216..5fc4036fe 100644 --- a/src/wx/export_dialog.cc +++ b/src/wx/export_dialog.cc @@ -25,32 +25,38 @@ #include #include +using std::string; using boost::bind; -#define FORMATS 2 +#define FORMATS 3 wxString format_names[] = { _("ProRes"), - _("MP4 / H.264") + _("MP4 / H.264"), + _("DCP subtitles") }; wxString format_filters[] = { _("MOV files (*.mov)|*.mov"), _("MP4 files (*.mp4)|*.mp4"), + _("Subtitle files (*.xml)|*.xml"), }; wxString format_extensions[] = { "mov", - "mp4" + "mp4", + "xml", }; ExportFormat formats[] = { EXPORT_FORMAT_PRORES, - EXPORT_FORMAT_H264_AAC + EXPORT_FORMAT_H264_AAC, + EXPORT_FORMAT_SUBTITLES_DCP }; -ExportDialog::ExportDialog (wxWindow* parent) +ExportDialog::ExportDialog (wxWindow* parent, string name) : TableDialog (parent, _("Export film"), 2, 1, true) + , _initial_name (name) { add (_("Format"), true); _format = new wxChoice (this, wxID_ANY); @@ -72,7 +78,13 @@ ExportDialog::ExportDialog (wxWindow* parent) _x264_crf_label[1]->SetFont(font); add (_("Output file"), true); - _file = new FilePickerCtrl (this, _("Select output file"), format_filters[0], false); + /* Don't warn overwrite here, because on Linux (at least) if we specify a filename like foo + the wxFileDialog will check that foo exists, but we will add an extension so we actually + need to check if foo.mov (or similar) exists. I can't find a way to make wxWidgets do this, + so disable its check and the caller will have to do it themselves. + */ + _file = new FilePickerCtrl (this, _("Select output file"), format_filters[0], false, false); + _file->SetPath (_initial_name); add (_file); for (int i = 0; i < FORMATS; ++i) { @@ -99,11 +111,12 @@ ExportDialog::format_changed () { DCPOMATIC_ASSERT (_format->GetSelection() >= 0 && _format->GetSelection() < FORMATS); _file->SetWildcard (format_filters[_format->GetSelection()]); - _file->SetPath (""); + _file->SetPath (_initial_name); _x264_crf->Enable (_format->GetSelection() == 1); for (int i = 0; i < 2; ++i) { _x264_crf_label[i]->Enable (_format->GetSelection() == 1); } + _mixdown->Enable (_format->GetSelection() != 2); } boost::filesystem::path