diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-11-14 21:32:39 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-11-14 21:32:39 +0100 |
| commit | bbd4f4637cd037e9372ee20034c32012d1e8568e (patch) | |
| tree | 1615fd3793d37f229c743018acacbb507a2ff580 | |
| parent | 1543195d9a73bc315c7a348d6d4a396fc191d85c (diff) | |
Fix "Verify picture assets details" checkbox in the player (#3118).
| -rw-r--r-- | src/tools/dcpomatic_player.cc | 3 | ||||
| -rw-r--r-- | src/wx/verify_dcp_dialog.cc | 21 | ||||
| -rw-r--r-- | src/wx/verify_dcp_dialog.h | 11 |
3 files changed, 26 insertions, 9 deletions
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<DCPContent>(_film->content().front()); DCPOMATIC_ASSERT(dcp); - auto job = make_shared<VerifyDCPJob>(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<VerifyDCPJob> job) +VerifyDCPDialog::VerifyDCPDialog( + wxWindow* parent, + wxString title, + vector<boost::filesystem::path> dcp_directories, + vector<boost::filesystem::path> 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<VerifyDCPJob>(_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 <wx/wx.h> LIBDCP_ENABLE_WARNINGS +#include <boost/filesystem.hpp> #include <memory> @@ -36,7 +37,12 @@ class VerifyDCPResultPanel; class VerifyDCPDialog : public wxDialog { public: - VerifyDCPDialog(wxWindow* parent, wxString title, std::shared_ptr<VerifyDCPJob> job); + VerifyDCPDialog( + wxWindow* parent, + wxString title, + std::vector<boost::filesystem::path> dcp_directories, + std::vector<boost::filesystem::path> kdms + ); private: void verify_clicked(); @@ -48,7 +54,8 @@ private: Button* _cancel; Button* _verify; bool _cancel_pending; - std::shared_ptr<VerifyDCPJob> _job; + std::vector<boost::filesystem::path> _dcp_directories; + std::vector<boost::filesystem::path> _kdms; }; |
