diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-02-11 23:56:33 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-02-11 23:56:33 +0000 |
| commit | 106c8fb2d471cb0b01da3b6b09e743304a869f4b (patch) | |
| tree | e7a4eec376005777b298017af911a9502f0822f4 /src/tools | |
| parent | e650b7b674d2739b932b3429415e5d785e5f0246 (diff) | |
Check for a DCP before offering to copy it to a TMS.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/dvdomatic.cc | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index 4572678e3..b90f3b07f 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -54,6 +54,7 @@ static FilmViewer* film_viewer = 0; static shared_ptr<Film> film; static std::string log_level; static std::string film_to_load; +static wxMenu* jobs_menu = 0; static void set_menu_sensitivity (); @@ -159,19 +160,19 @@ setup_menu (wxMenuBar* m) wxMenu* edit = new wxMenu; add_item (edit, "&Preferences...", ID_edit_preferences, ALWAYS); - wxMenu* jobs = new wxMenu; - add_item (jobs, "&Make DCP", ID_jobs_make_dcp, NEEDS_FILM); - add_item (jobs, "&Send DCP to TMS", ID_jobs_send_dcp_to_tms, NEEDS_FILM); - jobs->AppendSeparator (); - add_item (jobs, "&Examine content", ID_jobs_examine_content, NEEDS_FILM); - add_item (jobs, "Make DCP from existing &transcode", ID_jobs_make_dcp_from_existing_transcode, NEEDS_FILM); + jobs_menu = new wxMenu; + add_item (jobs_menu, "&Make DCP", ID_jobs_make_dcp, NEEDS_FILM); + add_item (jobs_menu, "&Send DCP to TMS", ID_jobs_send_dcp_to_tms, NEEDS_FILM); + jobs_menu->AppendSeparator (); + add_item (jobs_menu, "&Examine content", ID_jobs_examine_content, NEEDS_FILM); + add_item (jobs_menu, "Make DCP from existing &transcode", ID_jobs_make_dcp_from_existing_transcode, NEEDS_FILM); wxMenu* help = new wxMenu; add_item (help, "About", ID_help_about, ALWAYS); m->Append (file, _("&File")); m->Append (edit, _("&Edit")); - m->Append (jobs, _("&Jobs")); + m->Append (jobs_menu, _("&Jobs")); m->Append (help, _("&Help")); } @@ -204,6 +205,8 @@ public: Connect (ID_jobs_make_dcp_from_existing_transcode, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_make_dcp_from_existing_transcode)); Connect (ID_help_about, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::help_about)); + Connect (wxID_ANY, wxEVT_MENU_OPEN, wxMenuEventHandler (Frame::menu_opened)); + wxPanel* panel = new wxPanel (this); wxSizer* s = new wxBoxSizer (wxHORIZONTAL); s->Add (panel, 1, wxEXPAND); @@ -237,6 +240,18 @@ public: set_film (); } +private: + + void menu_opened (wxMenuEvent& ev) + { + if (ev.GetMenu() != jobs_menu) { + return; + } + + bool const have_dcp = film && film->have_dcp(); + jobs_menu->Enable (ID_jobs_send_dcp_to_tms, have_dcp); + } + void set_film () { film_viewer->set_film (film); |
