From bbd4f4637cd037e9372ee20034c32012d1e8568e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 14 Nov 2025 21:32:39 +0100 Subject: Fix "Verify picture assets details" checkbox in the player (#3118). --- src/tools/dcpomatic_player.cc | 3 +-- src/wx/verify_dcp_dialog.cc | 21 ++++++++++++++++----- src/wx/verify_dcp_dialog.h | 11 +++++++++-- 3 files changed, 26 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc index a6ed4e4b9..b0873da09 100644 --- a/src/tools/dcpomatic_player.cc +++ b/src/tools/dcpomatic_player.cc @@ -1034,8 +1034,7 @@ private: auto dcp = std::dynamic_pointer_cast(_film->content().front()); DCPOMATIC_ASSERT(dcp); - auto job = make_shared(dcp->directories(), _kdms, dcp::VerificationOptions{}); - VerifyDCPDialog dialog(this, _("Verify DCP"), job); + VerifyDCPDialog dialog(this, _("Verify DCP"), dcp->directories(), _kdms); dialog.ShowModal(); } diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc index ec33534ea..9fd77c367 100644 --- a/src/wx/verify_dcp_dialog.cc +++ b/src/wx/verify_dcp_dialog.cc @@ -37,15 +37,22 @@ LIBDCP_ENABLE_WARNINGS using std::shared_ptr; using std::string; +using std::vector; using boost::optional; -VerifyDCPDialog::VerifyDCPDialog(wxWindow* parent, wxString title, shared_ptr job) +VerifyDCPDialog::VerifyDCPDialog( + wxWindow* parent, + wxString title, + vector dcp_directories, + vector kdms + ) : wxDialog (parent, wxID_ANY, title) , _progress_panel(new VerifyDCPProgressPanel(this)) , _result_panel(new VerifyDCPResultPanel(this)) , _cancel_pending(false) - , _job(job) + , _dcp_directories(std::move(dcp_directories)) + , _kdms(std::move(kdms)) { auto overall_sizer = new wxBoxSizer (wxVERTICAL); @@ -91,13 +98,17 @@ VerifyDCPDialog::verify_clicked() _cancel->Enable(true); _verify->Enable(false); + dcp::VerificationOptions options; + options.check_picture_details = _check_picture_details->get(); + auto job = std::make_shared(_dcp_directories, _kdms, options); + auto jm = JobManager::instance(); - jm->add(_job); + jm->add(job); while (jm->work_to_do() && !_cancel_pending) { wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI | wxEVT_CATEGORY_USER_INPUT); dcpomatic_sleep_milliseconds(250); - _progress_panel->update(_job); + _progress_panel->update(job); } if (_cancel_pending) { @@ -105,7 +116,7 @@ VerifyDCPDialog::verify_clicked() EndModal(0); } else { _progress_panel->clear(); - _result_panel->add({ _job }); + _result_panel->add({ job }); _cancel->Enable(false); _verify->Enable(false); _check_picture_details->Enable(false); diff --git a/src/wx/verify_dcp_dialog.h b/src/wx/verify_dcp_dialog.h index 436d15332..ffed80b91 100644 --- a/src/wx/verify_dcp_dialog.h +++ b/src/wx/verify_dcp_dialog.h @@ -23,6 +23,7 @@ LIBDCP_DISABLE_WARNINGS #include LIBDCP_ENABLE_WARNINGS +#include #include @@ -36,7 +37,12 @@ class VerifyDCPResultPanel; class VerifyDCPDialog : public wxDialog { public: - VerifyDCPDialog(wxWindow* parent, wxString title, std::shared_ptr job); + VerifyDCPDialog( + wxWindow* parent, + wxString title, + std::vector dcp_directories, + std::vector kdms + ); private: void verify_clicked(); @@ -48,7 +54,8 @@ private: Button* _cancel; Button* _verify; bool _cancel_pending; - std::shared_ptr _job; + std::vector _dcp_directories; + std::vector _kdms; }; -- cgit v1.2.3