summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tools/dcpomatic_player.cc23
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"));