X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftools%2Fdcpomatic_batch.cc;h=3088743547b0ed1f7f3e3b6b0b2df574dea94ed1;hb=866ef451a1db6458109f6833109ccf7cfc1684ee;hp=64eb46af2c2813de29acc96a04e534fe147e3e70;hpb=a5e041b46b675c1f42fc83920be45345662e0376;p=dcpomatic.git diff --git a/src/tools/dcpomatic_batch.cc b/src/tools/dcpomatic_batch.cc index 64eb46af2..308874354 100644 --- a/src/tools/dcpomatic_batch.cc +++ b/src/tools/dcpomatic_batch.cc @@ -36,16 +36,18 @@ #include #include #include +#include #include using std::exception; using std::string; using std::cout; +using std::list; using boost::shared_ptr; using boost::thread; using boost::scoped_array; -static boost::optional film_to_load; +static list films_to_load; enum { ID_file_add_film = 1, @@ -57,7 +59,7 @@ void setup_menu (wxMenuBar* m) { wxMenu* file = new wxMenu; - file->Append (ID_file_add_film, _("&Add Film...")); + file->Append (ID_file_add_film, _("&Add Film...\tCtrl-A")); #ifdef DCPOMATIC_OSX file->Append (wxID_EXIT, _("&Exit")); #else @@ -98,23 +100,23 @@ public: setup_menu (bar); SetMenuBar (bar); - Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&DOMFrame::file_add_film, this), ID_file_add_film); - Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&DOMFrame::file_quit, this), wxID_EXIT); - Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&DOMFrame::edit_preferences, this), wxID_PREFERENCES); - Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&DOMFrame::tools_encoding_servers, this), ID_tools_encoding_servers); - Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&DOMFrame::help_about, this), ID_help_about); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::file_add_film, this), ID_file_add_film); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::file_quit, this), wxID_EXIT); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::edit_preferences, this), wxID_PREFERENCES); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_encoding_servers, this), ID_tools_encoding_servers); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_about, this), ID_help_about); wxPanel* panel = new wxPanel (this); wxSizer* s = new wxBoxSizer (wxHORIZONTAL); s->Add (panel, 1, wxEXPAND); SetSizer (s); - JobManagerView* job_manager_view = new JobManagerView (panel, false); + JobManagerView* job_manager_view = new JobManagerView (panel, true); _sizer->Add (job_manager_view, 1, wxALL | wxEXPAND, 6); wxSizer* buttons = new wxBoxSizer (wxHORIZONTAL); wxButton* add = new wxButton (panel, wxID_ANY, _("Add Film...")); - add->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&DOMFrame::add_film, this)); + add->Bind (wxEVT_BUTTON, boost::bind (&DOMFrame::add_film, this)); buttons->Add (add, 1, wxALL, 6); _sizer->Add (buttons, 0, wxALL, 6); @@ -318,15 +320,22 @@ class App : public wxApp this->Bind (wxEVT_IDLE, boost::bind (&App::idle, this)); shared_ptr film; - if (film_to_load && boost::filesystem::is_directory (film_to_load.get())) { - try { - film.reset (new Film (film_to_load.get())); - film->read_metadata (); - film->make_dcp (); - } catch (exception& e) { - error_dialog ( - 0, std_to_wx (String::compose (wx_to_std (_("Could not load film %1 (%2)")), film_to_load->string(), e.what())) - ); + BOOST_FOREACH (boost::filesystem::path i, films_to_load) { + if (boost::filesystem::is_directory (i)) { + try { + film.reset (new Film (i)); + film->read_metadata (); + film->make_dcp (); + } catch (exception& e) { + error_dialog ( + 0, std_to_wx ( + String::compose ( + wx_to_std (_("Could not load film %1 (%2)")), i.string(), + e.what() + ) + ) + ); + } } } @@ -346,8 +355,8 @@ class App : public wxApp bool OnCmdLineParsed (wxCmdLineParser& parser) { - if (parser.GetParamCount() > 0) { - film_to_load = wx_to_std (parser.GetParam(0)); + for (size_t i = 0; i < parser.GetParamCount(); ++i) { + films_to_load.push_back (wx_to_std (parser.GetParam(i))); } return true;