diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-02-12 19:37:31 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-02-12 19:37:31 +0000 |
| commit | 1d938d62dae5a21a87b0f416302d51f154f89663 (patch) | |
| tree | e4d78ffc9dbc3e2db1a1b10644f6cfbdefb0e75c /src | |
| parent | e22b479faa80d20ae6c5749b2334e5f3c21ef599 (diff) | |
Primitive opening of DCP's containing folder (#51).
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/dvdomatic.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index b90f3b07f..3281fc113 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -19,6 +19,9 @@ #include <iostream> #include <boost/filesystem.hpp> +#ifdef __WXMSW__ +#include <shellapi.h> +#endif #include <wx/aboutdlg.h> #include <wx/stdpaths.h> #include <wx/cmdline.h> @@ -44,6 +47,7 @@ using std::cout; using std::string; +using std::wstring; using std::stringstream; using std::map; using std::make_pair; @@ -139,6 +143,7 @@ enum { ID_edit_preferences, ID_jobs_make_dcp, ID_jobs_send_dcp_to_tms, + ID_jobs_show_dcp, ID_jobs_examine_content, ID_jobs_make_dcp_from_existing_transcode, ID_help_about @@ -163,6 +168,7 @@ setup_menu (wxMenuBar* m) 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); + add_item (jobs_menu, "S&how DCP", ID_jobs_show_dcp, 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); @@ -201,6 +207,7 @@ public: Connect (ID_edit_preferences, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::edit_preferences)); Connect (ID_jobs_make_dcp, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_make_dcp)); Connect (ID_jobs_send_dcp_to_tms, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_send_dcp_to_tms)); + Connect (ID_jobs_show_dcp, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_show_dcp)); Connect (ID_jobs_examine_content, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_examine_content)); 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)); @@ -250,6 +257,7 @@ private: bool const have_dcp = film && film->have_dcp(); jobs_menu->Enable (ID_jobs_send_dcp_to_tms, have_dcp); + jobs_menu->Enable (ID_jobs_show_dcp, have_dcp); } void set_film () @@ -353,6 +361,26 @@ private: { film->send_dcp_to_tms (); } + + void jobs_show_dcp (wxCommandEvent &) + { +#ifdef __WXMSW__ + string d = film->directory(); + wstring w; + w.assign (d.begin(), d.end()); + ShellExecute (0, L"open", w.c_str(), 0, 0, SW_SHOWDEFAULT); +#else + int r = system ("which nautilus"); + if (WEXITSTATUS (r) == 0) { + system (string ("nautilus " + film->directory()).c_str ()); + } else { + int r = system ("which konqueror"); + if (WEXITSTATUS (r) == 0) { + system (string ("konqueror " + film->directory()).c_str ()); + } + } +#endif + } void jobs_examine_content (wxCommandEvent &) { |
