Bump libdcp for new method.
[dcpomatic.git] / src / wx / new_film_dialog.cc
index 04b9e10578889d8f43b59f50f1d178dfd193d9ce..4883810d06cc63379c294a328ddaccecd45eae5e 100644 (file)
@@ -46,6 +46,10 @@ NewFilmDialog::NewFilmDialog (wxWindow* parent)
        _folder = new wxDirPickerCtrl (this, wxID_ANY, wxEmptyString, wxDirSelectorPromptStr, wxDefaultPosition, wxSize (300, -1));
 #endif
 
+       _use_template = new wxCheckButton (this, wxID_ANY, _("From template"));
+       add (_use_template);
+       _template_name = new wxChoice (this, wxID_ANY);
+
        if (!_directory) {
                _directory = Config::instance()->default_directory_or (wx_to_std (wxStandardPaths::Get().GetDocumentsDir()));
        }
@@ -54,10 +58,23 @@ NewFilmDialog::NewFilmDialog (wxWindow* parent)
        add (_folder);
 
        _name->SetFocus ();
+       _template_name->Enable (false);
+
+       BOOST_FOREACH (string i, Config::instance()->template_names ()) {
+               _template_name->Append (std_to_wx (i));
+       }
+
+       _use_template->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, bind (&NewFilmDialog::use_template_clicked, this));
 
        layout ();
 }
 
+void
+NewFilmDialog::use_template_clicked ()
+{
+       _template_name->Enable (_use_template->GetValue ());
+}
+
 NewFilmDialog::~NewFilmDialog ()
 {
        _directory = wx_to_std (_folder->GetPath ());
@@ -71,3 +88,13 @@ NewFilmDialog::get_path () const
        p /= wx_to_std (_name->GetValue ());
        return p;
 }
+
+optional<string>
+NewFilmDialog::template_name () const
+{
+       if (!_use_template->GetValue ()) {
+               return optional<string> ();
+       }
+
+       return wx_to_std (_template_name->GetValue ());
+}