diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-09-22 21:04:14 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-09-22 22:39:16 +0200 |
| commit | 58392896c9dcbb378050bc7d0c4df989f4265e46 (patch) | |
| tree | 927917e5c2e1d6e8a1103f2b83689fbd2a4a6e4d | |
| parent | 979e5cac8afd5681669b3e8897ecb7bd8d4eb609 (diff) | |
FIXME: Support JSON verifier reports (#1823).1823-json
Needs libdcp version bump.
| -rw-r--r-- | cscript | 2 | ||||
| -rw-r--r-- | src/tools/dcpomatic_verifier.cc | 2 | ||||
| -rw-r--r-- | src/wx/verify_dcp_result_panel.cc | 34 | ||||
| -rw-r--r-- | src/wx/verify_dcp_result_panel.h | 2 |
4 files changed, 36 insertions, 4 deletions
@@ -502,7 +502,7 @@ def build_with_cpp17(target): def dependencies(target, options): - deps = [('libdcp', 'v1.10.28', {'c++17': build_with_cpp17(target)})] + deps = [('libdcp', '8c2822db1f40614b78bc4ecbd0498c20e05e021c', {'c++17': build_with_cpp17(target)})] deps.append(('libsub', 'v1.6.53')) deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23')) deps.append(('rtaudio', 'f619b76')) diff --git a/src/tools/dcpomatic_verifier.cc b/src/tools/dcpomatic_verifier.cc index 8a509529b..40482e44d 100644 --- a/src/tools/dcpomatic_verifier.cc +++ b/src/tools/dcpomatic_verifier.cc @@ -259,7 +259,7 @@ private: if (_write_log->get()) { for (size_t i = 0; i < _dcp_paths.size(); ++i) { dcp::TextFormatter formatter(_dcp_paths[i] / "REPORT.txt"); - dcp::verify_report({ jobs[i]->result() }, formatter); + dcp::make_formatted_verify_report({ jobs[i]->result() }, formatter); } } diff --git a/src/wx/verify_dcp_result_panel.cc b/src/wx/verify_dcp_result_panel.cc index d65806cf8..4413408ee 100644 --- a/src/wx/verify_dcp_result_panel.cc +++ b/src/wx/verify_dcp_result_panel.cc @@ -24,11 +24,12 @@ #include "verify_dcp_result_panel.h" #include "wx_util.h" #include "lib/verify_dcp_job.h" +#include <dcp/formatted_verify_report.h> #include <dcp/html_formatter.h> +#include <dcp/json_verify_report.h> #include <dcp/text_formatter.h> #include <dcp/pdf_formatter.h> #include <dcp/verify.h> -#include <dcp/verify_report.h> #include <dcp/warnings.h> LIBDCP_DISABLE_WARNINGS #include <wx/notebook.h> @@ -82,6 +83,8 @@ VerifyDCPResultPanel::VerifyDCPResultPanel(wxWindow* parent) save_sizer->Add(_save_html_report, 0, wxALL, DCPOMATIC_SIZER_GAP); _save_pdf_report = new Button(this, _("Save report as PDF...")); save_sizer->Add(_save_pdf_report, 0, wxALL, DCPOMATIC_SIZER_GAP); + _save_json_report = new Button(this, _("Save report as JSON...")); + save_sizer->Add(_save_json_report, 0, wxALL, DCPOMATIC_SIZER_GAP); sizer->Add(save_sizer); SetSizer(sizer); @@ -91,10 +94,12 @@ VerifyDCPResultPanel::VerifyDCPResultPanel(wxWindow* parent) _save_text_report->bind(&VerifyDCPResultPanel::save_text_report, this); _save_html_report->bind(&VerifyDCPResultPanel::save_html_report, this); _save_pdf_report->bind(&VerifyDCPResultPanel::save_pdf_report, this); + _save_json_report->bind(&VerifyDCPResultPanel::save_json_report, this); _save_text_report->Enable(false); _save_html_report->Enable(false); _save_pdf_report->Enable(false); + _save_json_report->Enable(false); } @@ -151,6 +156,7 @@ VerifyDCPResultPanel::add(vector<shared_ptr<const VerifyDCPJob>> jobs) _save_text_report->Enable(true); _save_html_report->Enable(true); _save_pdf_report->Enable(true); + _save_json_report->Enable(true); for (auto type: _types) { _pages[type]->ExpandAll(); @@ -721,7 +727,24 @@ void save(wxWindow* parent, wxString filter, vector<shared_ptr<const VerifyDCPJo for (auto job: jobs) { results.push_back(job->result()); } - dcp::verify_report(results, formatter); + dcp::make_formatted_verify_report(results, formatter); +} + + +static +void +save_json(wxWindow* parent, wxString filter, vector<shared_ptr<const VerifyDCPJob>> jobs) +{ + FileDialog dialog(parent, _("Verification report"), filter, wxFD_SAVE | wxFD_OVERWRITE_PROMPT, "SaveVerificationReport"); + if (!dialog.show()) { + return; + } + + auto results = std::vector<dcp::VerificationResult>(); + for (auto job: jobs) { + results.push_back(job->result()); + } + dcp::make_json_verify_report(results, dialog.path()); } @@ -744,3 +767,10 @@ VerifyDCPResultPanel::save_pdf_report() { save<dcp::PDFFormatter>(this, char_to_wx("PDF files (*.pdf)|*.pdf"), _jobs); } + + +void +VerifyDCPResultPanel::save_json_report() +{ + save_json(this, char_to_wx("JSON files (*.json)|*.json"), _jobs); +} diff --git a/src/wx/verify_dcp_result_panel.h b/src/wx/verify_dcp_result_panel.h index ff4f29a1a..b8137a660 100644 --- a/src/wx/verify_dcp_result_panel.h +++ b/src/wx/verify_dcp_result_panel.h @@ -42,12 +42,14 @@ private: void save_text_report(); void save_html_report(); void save_pdf_report(); + void save_json_report(); wxStaticText* _summary; std::map<dcp::VerificationNote::Type, wxTreeCtrl*> _pages; Button* _save_text_report; Button* _save_html_report; Button* _save_pdf_report; + Button* _save_json_report; std::vector<std::shared_ptr<const VerifyDCPJob>> _jobs; |
