summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-11-14 21:32:39 +0100
committerCarl Hetherington <cth@carlh.net>2025-11-14 21:32:39 +0100
commitbbd4f4637cd037e9372ee20034c32012d1e8568e (patch)
tree1615fd3793d37f229c743018acacbb507a2ff580
parent1543195d9a73bc315c7a348d6d4a396fc191d85c (diff)
Fix "Verify picture assets details" checkbox in the player (#3118).
-rw-r--r--src/tools/dcpomatic_player.cc3
-rw-r--r--src/wx/verify_dcp_dialog.cc21
-rw-r--r--src/wx/verify_dcp_dialog.h11
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;
};