X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffilm_viewer.cc;h=27c8d23b61710d4478c3a96008c52176bceeec66;hb=aeb835a18c8df347e0ed68fb24631b320abeb611;hp=020d57ce3c4c5a6bc91369932c3f6598cf9e1749;hpb=e70f23c79bb3a9abe998d6bdd77641c2c1ae24d4;p=dcpomatic.git diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 020d57ce3..27c8d23b6 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -54,6 +54,7 @@ using std::exception; using boost::shared_ptr; using boost::dynamic_pointer_cast; using boost::weak_ptr; +using boost::optional; using dcp::Size; FilmViewer::FilmViewer (wxWindow* p) @@ -113,7 +114,7 @@ FilmViewer::FilmViewer (wxWindow* p) set_film (shared_ptr ()); JobManager::instance()->ActiveJobsChanged.connect ( - bind (&FilmViewer::active_jobs_changed, this, _1) + bind (&FilmViewer::active_jobs_changed, this, _2) ); setup_sensitivity (); @@ -149,6 +150,8 @@ FilmViewer::set_film (shared_ptr film) in the preview. */ _player->set_always_burn_subtitles (true); + _player->set_ignore_audio (); + _player->set_play_referenced (); _film_connection = _film->Changed.connect (boost::bind (&FilmViewer::film_changed, this, _1)); @@ -384,23 +387,12 @@ FilmViewer::update_position_label () } void -FilmViewer::active_jobs_changed (bool a) +FilmViewer::active_jobs_changed (optional j) { - if (a) { - list > jobs = JobManager::instance()->get (); - list >::iterator i = jobs.begin (); - while (i != jobs.end() && boost::dynamic_pointer_cast (*i) == 0) { - ++i; - } - - if (i == jobs.end() || (*i)->finished()) { - /* no examine content job running, so we're ok to use the viewer */ - a = false; - } - } - - _slider->Enable (!a); - _play_button->Enable (!a); + /* examine content is the only job which stops the viewer working */ + bool const a = !j || *j != "examine_content"; + _slider->Enable (a); + _play_button->Enable (a); } void