X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=3275984e641d090fa82be86ee56cf34fcc46eca5;hb=563fc75855b9649cf135cf137cc1b0c43ebc8286;hp=13569d11d7acd648961358ae1f36cf18fd268ea4;hpb=4edc14c8b1410e24f68b510cc14409b96c0338a3;p=dcpomatic.git diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 13569d11d..3275984e6 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -84,23 +84,23 @@ #include "lib/text_content.h" #include "lib/dcpomatic_log.h" #include "lib/subtitle_encoder.h" +#include "lib/warnings.h" #include #include +DCPOMATIC_DISABLE_WARNINGS #include #include #include #include #include #include +DCPOMATIC_ENABLE_WARNINGS #ifdef __WXGTK__ #include #endif #ifdef __WXMSW__ #include #endif -#ifdef __WXOSX__ -#include -#endif #include #include #include @@ -268,6 +268,7 @@ public: , _history_position (0) , _history_separator (0) , _update_news_requested (false) + , _first_shown_called (false) { #if defined(DCPOMATIC_WINDOWS) if (Config::instance()->win32_console ()) { @@ -336,6 +337,7 @@ public: Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_report_a_problem, this), ID_help_report_a_problem); Bind (wxEVT_CLOSE_WINDOW, boost::bind (&DOMFrame::close, this, _1)); + Bind (wxEVT_SHOW, boost::bind (&DOMFrame::show, this, _1)); /* Use a panel as the only child of the Frame so that we avoid the dark-grey background on Windows. @@ -490,6 +492,14 @@ public: private: + void show (wxShowEvent& ev) + { + if (ev.IsShown() && !_first_shown_called) { + _film_editor->first_shown (); + _first_shown_called = true; + } + } + void film_message (string m) { message_dialog (this, std_to_wx(m)); @@ -812,7 +822,7 @@ private: } /** @return false if we succeeded, true if not */ - bool send_to_other_tool (int port, function start, string message) + bool send_to_other_tool (int port, function start, string message) { /* i = 0; try to connect via socket i = 1; try again, and then try to start the tool @@ -838,7 +848,7 @@ private: } if (i == 1) { - start (wx_to_std (wxStandardPaths::Get().GetExecutablePath())); + start (); } dcpomatic_sleep_seconds (1); @@ -864,7 +874,7 @@ private: _film->write_metadata (); - if (send_to_other_tool (BATCH_JOB_PORT, bind (&start_batch_converter, _1), _film->directory()->string())) { + if (send_to_other_tool (BATCH_JOB_PORT, &start_batch_converter, _film->directory()->string())) { error_dialog (this, _("Could not find batch converter.")); } } @@ -875,7 +885,7 @@ private: return; } - if (send_to_other_tool (PLAYER_PLAY_PORT, bind (&start_player, _1), _film->dir(_film->dcp_name(false)).string())) { + if (send_to_other_tool (PLAYER_PLAY_PORT, &start_player, _film->dir(_film->dcp_name(false)).string())) { error_dialog (this, _("Could not find player.")); } } @@ -905,9 +915,9 @@ private: dcp::LocalTime from (Config::instance()->signer_chain()->leaf().not_before()); - from.add_minutes (1); + from.add_days (1); dcp::LocalTime to (Config::instance()->signer_chain()->leaf().not_after()); - to.add_minutes (-1); + to.add_days (-1); optional kdm; try { @@ -966,7 +976,7 @@ private: } else { job->set_encoder ( shared_ptr ( - new FFmpegEncoder (_film, job, d->path(), d->format(), d->mixdown_to_stereo(), d->split_reels(), d->x264_crf() + new FFmpegEncoder (_film, job, d->path(), d->format(), d->mixdown_to_stereo(), d->split_reels(), d->split_streams(), d->x264_crf() #ifdef DCPOMATIC_VARIANT_SWAROOP , optional(), optional() #endif @@ -1314,7 +1324,15 @@ private: add_item (jobs_menu, _("Export...\tCtrl-E"), ID_jobs_export, NEEDS_FILM); jobs_menu->AppendSeparator (); add_item (jobs_menu, _("&Send DCP to TMS"), ID_jobs_send_dcp_to_tms, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL); - add_item (jobs_menu, _("S&how DCP"), ID_jobs_show_dcp, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL); + +#if defined(DCPOMATIC_OSX) + add_item (jobs_menu, _("S&how DCP in Finder"), ID_jobs_show_dcp, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL); +#elif defined(DCPOMATIC_WINDOWS) + add_item (jobs_menu, _("S&how DCP in Explorer"), ID_jobs_show_dcp, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL); +#else + add_item (jobs_menu, _("S&how DCP in Files"), ID_jobs_show_dcp, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL); +#endif + add_item (jobs_menu, _("Open DCP in &player"), ID_jobs_open_dcp_in_player, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL); wxMenu* view = new wxMenu; @@ -1490,6 +1508,7 @@ private: boost::signals2::scoped_connection _analytics_message_connection; bool _update_news_requested; shared_ptr _clipboard; + bool _first_shown_called; }; static const wxCmdLineEntryDesc command_line_description[] = { @@ -1540,10 +1559,9 @@ private: unsetenv ("UBUNTU_MENUPROXY"); #endif -#ifdef __WXOSX__ - ProcessSerialNumber serial; - GetCurrentProcess (&serial); - TransformProcessType (&serial, kProcessTransformToForegroundApplication); +#ifdef DCPOMATIC_OSX + dcpomatic_sleep_seconds (1); + make_foreground_application (); #endif dcpomatic_setup_path_encoding ();