summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-03-20 23:12:55 +0100
committerCarl Hetherington <cth@carlh.net>2024-03-20 23:12:55 +0100
commit137f4b5b6ccf7545d0499f57150b005bdfdf5768 (patch)
tree9dcea390cc4d88d40eba20b9a88763dfc099aff4 /src
parent15d7164347404249542dc5ae75cfd37011aef7c3 (diff)
parent15235c0d2fad7e916cda5b2d6ce79c4e9a38c4f9 (diff)
Merge tag 'v2.16.79' into v2.17.x
Diffstat (limited to 'src')
-rw-r--r--src/lib/digester.cc2
-rw-r--r--src/wx/content_menu.cc10
-rw-r--r--src/wx/supporters.cc11
-rw-r--r--src/wx/verify_dcp_dialog.cc3
-rw-r--r--src/wx/video_panel.cc8
-rw-r--r--src/wx/wx_util.cc4
6 files changed, 26 insertions, 12 deletions
diff --git a/src/lib/digester.cc b/src/lib/digester.cc
index 8542c75a1..09214c3de 100644
--- a/src/lib/digester.cc
+++ b/src/lib/digester.cc
@@ -67,7 +67,7 @@ Digester::get () const
char hex[MD5_DIGEST_SIZE * 2 + 1];
for (int i = 0; i < MD5_DIGEST_SIZE; ++i) {
- sprintf(hex + i * 2, "%02x", digest[i]);
+ snprintf(hex + i * 2, MD5_DIGEST_SIZE * 2 + 1, "%02x", digest[i]);
}
_digest = hex;
diff --git a/src/wx/content_menu.cc b/src/wx/content_menu.cc
index 9c50d56da..92a68e3b3 100644
--- a/src/wx/content_menu.cc
+++ b/src/wx/content_menu.cc
@@ -520,15 +520,11 @@ ContentMenu::cpl_selected (wxCommandEvent& ev)
DCPOMATIC_ASSERT (dcp);
auto cpls = dcp::find_and_resolve_cpls (dcp->directories(), true);
- DCPOMATIC_ASSERT (ev.GetId() > 0);
- DCPOMATIC_ASSERT (ev.GetId() <= int (cpls.size()));
- auto i = cpls.begin ();
- for (int j = 0; j < ev.GetId() - 1; ++j) {
- ++i;
- }
+ DCPOMATIC_ASSERT(ev.GetId() >= DCPOMATIC_CPL_MENU);
+ DCPOMATIC_ASSERT(ev.GetId() < int(DCPOMATIC_CPL_MENU + cpls.size()));
+ dcp->set_cpl(cpls[ev.GetId() - DCPOMATIC_CPL_MENU]->id());
- dcp->set_cpl ((*i)->id ());
auto film = _film.lock ();
DCPOMATIC_ASSERT (film);
JobManager::instance()->add (make_shared<ExamineContentJob>(film, dcp));
diff --git a/src/wx/supporters.cc b/src/wx/supporters.cc
index 260081fe3..711b6bbad 100644
--- a/src/wx/supporters.cc
+++ b/src/wx/supporters.cc
@@ -255,6 +255,7 @@ supported_by.Add (wxT ("Baptiste Darricarrère"));
supported_by.Add (wxT ("JP Davidson"));
supported_by.Add (wxT ("Carl Davis"));
supported_by.Add (wxT ("Levi Davis"));
+supported_by.Add (wxT ("James Davis"));
supported_by.Add (wxT ("Stephen Day"));
supported_by.Add (wxT ("Criolla DCP"));
supported_by.Add (wxT ("Cinéma de la Neuveville"));
@@ -455,6 +456,7 @@ supported_by.Add (wxT ("Silvio Giuliano"));
supported_by.Add (wxT ("Cine Complete GmbH"));
supported_by.Add (wxT ("CIDCOM Werbeagentur GmbH"));
supported_by.Add (wxT ("Filmtheaterbetriebe Klein GmbH"));
+supported_by.Add (wxT ("Konnektom GmbH"));
supported_by.Add (wxT ("Artus Postproduktion GmbH"));
supported_by.Add (wxT ("ProCinema GmbH"));
supported_by.Add (wxT ("Urakypost GmbH"));
@@ -697,6 +699,7 @@ supported_by.Add (wxT ("Olivier Lemaire"));
supported_by.Add (wxT ("Tekanov Leonid"));
supported_by.Add (wxT ("Eric Lesachet"));
supported_by.Add (wxT ("Elmer Leupen"));
+supported_by.Add (wxT ("Jason Levangie"));
supported_by.Add (wxT ("Gavin Lewarne"));
supported_by.Add (wxT ("Peter Liacopoulos"));
supported_by.Add (wxT ("Peter Liermann"));
@@ -732,6 +735,7 @@ supported_by.Add (wxT ("Fennworld LLC"));
supported_by.Add (wxT ("The Gem LLC"));
supported_by.Add (wxT ("ColabDM Productions LLP"));
supported_by.Add (wxT ("Marco Löber"));
+supported_by.Add (wxT ("Sergio Lobo-Navia"));
supported_by.Add (wxT ("LoïcK!"));
supported_by.Add (wxT ("Kwen In London"));
supported_by.Add (wxT ("London48HFP"));
@@ -903,6 +907,7 @@ supported_by.Add (wxT ("Anders Olsson"));
supported_by.Add (wxT ("Didier Oriol"));
supported_by.Add (wxT ("Kevin Orman"));
supported_by.Add (wxT ("George Orr"));
+supported_by.Add (wxT ("orwoid.com"));
supported_by.Add (wxT ("Danilo Marichal Osorio"));
supported_by.Add (wxT ("Norbert Ostendorf"));
supported_by.Add (wxT ("Peter Östlund"));
@@ -1020,6 +1025,7 @@ supported_by.Add (wxT ("Robin Rippmann"));
supported_by.Add (wxT ("Ronnie Riskalla"));
supported_by.Add (wxT ("Jimena Villarroel Rivadeneira"));
supported_by.Add (wxT ("Rafa Rivera"));
+supported_by.Add (wxT ("Cherie Rivers"));
supported_by.Add (wxT ("Robbie Robertson"));
supported_by.Add (wxT ("Charlotte Robinson"));
supported_by.Add (wxT ("Fernando Rocha"));
@@ -1151,7 +1157,9 @@ supported_by.Add (wxT ("Patrik Strömdahl"));
supported_by.Add (wxT ("Francois Stuck"));
supported_by.Add (wxT ("The Playroom Recording Studio"));
supported_by.Add (wxT ("Yum Studio"));
+supported_by.Add (wxT ("JLM Studios"));
supported_by.Add (wxT ("Open Gate Studios"));
+supported_by.Add (wxT ("Seelie Studios"));
supported_by.Add (wxT ("Raggio Verde Subtitles"));
supported_by.Add (wxT ("Michael Suesterhenn"));
supported_by.Add (wxT ("Christian Suhren"));
@@ -1185,6 +1193,7 @@ supported_by.Add (wxT ("Peter Hoopes for the Everett Theatre"));
supported_by.Add (wxT ("The Concrete Theatre"));
supported_by.Add (wxT ("Texas Theatre"));
supported_by.Add (wxT ("Rodeo Drive-In Theatre"));
+supported_by.Add (wxT ("Ralph Thiekötter"));
supported_by.Add (wxT ("Carlo Thiel"));
supported_by.Add (wxT ("Nicholas Thiele"));
supported_by.Add (wxT ("Jamie Thomas"));
@@ -1216,6 +1225,7 @@ supported_by.Add (wxT ("Stephen Tyler"));
supported_by.Add (wxT ("Oles Tytokhod"));
supported_by.Add (wxT ("Michael Ude"));
supported_by.Add (wxT ("Mediakomitee UG"));
+supported_by.Add (wxT ("Tor Uglum"));
supported_by.Add (wxT ("Bjørn Uhrbrand"));
supported_by.Add (wxT ("Cinema Metropolis Umbertide"));
supported_by.Add (wxT ("Anthony Urgo"));
@@ -1285,6 +1295,7 @@ supported_by.Add (wxT ("Mikael Wiström"));
supported_by.Add (wxT ("Wolfgang Woehl"));
supported_by.Add (wxT ("Nicolai Wolf"));
supported_by.Add (wxT ("Chi Kong Wong"));
+supported_by.Add (wxT ("Simon Wood"));
supported_by.Add (wxT ("Andrew Woodward"));
supported_by.Add (wxT ("Woody/mC"));
supported_by.Add (wxT ("Jeremy Wooldridge"));
diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc
index 2b108c945..c77f68ea1 100644
--- a/src/wx/verify_dcp_dialog.cc
+++ b/src/wx/verify_dcp_dialog.cc
@@ -130,12 +130,13 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr<VerifyDCPJob> job
if (job->finished_in_error() && job->error_summary() != "") {
/* We have an error that did not come from dcp::verify */
add_bullet (dcp::VerificationNote::Type::ERROR, std_to_wx(job->error_summary()));
+ ++counts[dcp::VerificationNote::Type::ERROR];
}
for (auto i: job->notes()) {
switch (i.code()) {
case dcp::VerificationNote::Code::FAILED_READ:
- add (i, std_to_wx(*i.note()));
+ add (i, _("Could not read DCP (%n)"));
break;
case dcp::VerificationNote::Code::MISMATCHED_CPL_HASHES:
add(i, _("The hash (%reference_hash) of the CPL %n in the PKL does not agree with the CPL file (%calculated_hash). This probably means that the CPL file is corrupt."));
diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc
index 0280f16a0..5a91df8fe 100644
--- a/src/wx/video_panel.cc
+++ b/src/wx/video_panel.cc
@@ -100,7 +100,7 @@ VideoPanel::create ()
int const link_height = 32;
#elif defined(DCPOMATIC_OSX)
int const crop_width = 56;
- int const link_width = 23;
+ int const link_width = 8 + 15 / dpi_scale_factor(this);
int const link_height = 28;
#else
int const crop_width = 56;
@@ -119,8 +119,10 @@ VideoPanel::create ()
boost::bind (&VideoPanel::left_crop_changed, this)
);
+ auto const link_path = bitmap_path(gui_is_dark() ? "link_white.png" : "link_black.png");
+
_left_right_link = new wxToggleButton (this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(link_width, link_height));
- _left_right_link->SetBitmap (wxBitmap(bitmap_path("link.png"), wxBITMAP_TYPE_PNG));
+ _left_right_link->SetBitmap(wxBitmap(link_path, wxBITMAP_TYPE_PNG));
_right_crop_label = create_label (this, _("Right"), true);
_right_crop = new ContentSpinCtrl<VideoContent> (
@@ -145,7 +147,7 @@ VideoPanel::create ()
);
_top_bottom_link = new wxToggleButton (this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(link_width, link_height));
- _top_bottom_link->SetBitmap (wxBitmap(bitmap_path("link.png"), wxBITMAP_TYPE_PNG));
+ _top_bottom_link->SetBitmap(wxBitmap(link_path, wxBITMAP_TYPE_PNG));
_bottom_crop_label = create_label (this, _("Bottom"), true);
_bottom_crop = new ContentSpinCtrl<VideoContent> (
diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc
index c0f90bd25..28ac6ab5c 100644
--- a/src/wx/wx_util.cc
+++ b/src/wx/wx_util.cc
@@ -670,6 +670,10 @@ bitmap_path (string name)
} else {
base = resources_path();
}
+
+ if (!boost::filesystem::exists(base / name)) {
+ base = path / boost::filesystem::path("osx/preferences");
+ }
#else
base = resources_path();
#endif