diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/dcpomatic_player.cc | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc index 6accce7d2..e2c689209 100644 --- a/src/tools/dcpomatic_player.cc +++ b/src/tools/dcpomatic_player.cc @@ -464,9 +464,14 @@ public: void reset_film(shared_ptr<Film> film = std::make_shared<Film>(boost::none)) { _film = film; + film_changed(); + _viewer.set_film(_film); + _viewer.seek(DCPTime(), true); + _info->triggered_update(); + set_menu_sensitivity(); + _controls->set_film (_film); - film_changed(); } /* Update anything that depends on properties of the film or its contents */ @@ -517,11 +522,6 @@ public: } } - _viewer.seek(DCPTime(), true); - _info->triggered_update (); - - set_menu_sensitivity (); - auto old = _cpl_menu->GetMenuItems(); for (auto const& i: old) { _cpl_menu->Remove (i); @@ -731,7 +731,16 @@ private: dcp->add_ov (wx_to_std(c->GetPath())); auto job = make_shared<ExamineContentJob>(_film, dcp, true); - _examine_job_connection = job->Finished.connect(boost::bind(&DOMFrame::film_changed, this)); + + auto film_ready = [this]() { + film_changed(); + _viewer.set_film(_film); + _viewer.seek(DCPTime(), true); + _info->triggered_update(); + set_menu_sensitivity(); + }; + + _examine_job_connection = job->Finished.connect(boost::bind<void>(film_ready)); JobManager::instance()->add(job); display_progress(variant::wx::dcpomatic_player(), _("Loading content")); |
