summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorcah <cth@carlh.net>2025-07-10 22:47:19 +0200
committercah <cth@carlh.net>2025-07-10 22:47:19 +0200
commit4be4e97abf911e7633172ada950d107a3ed28834 (patch)
treec9deceb5f3684fa081db0613da88264732093fcb /src/wx
parent727c1aa7da8b325dfa38c8443b1dd356acaf6ec3 (diff)
parent42bde2d97039f6d0d645d83db90612d18ebf225a (diff)
Merge branch 'compose-to-fmt-take2'
This removes all uses of String::compose, replacing them with fmt and updating the i18n strings where required.
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/about_dialog.cc8
-rw-r--r--src/wx/audio_plot.cc3
-rw-r--r--src/wx/barco_alchemy_certificate_panel.cc5
-rw-r--r--src/wx/christie_certificate_panel.cc9
-rw-r--r--src/wx/closed_captions_dialog.cc3
-rw-r--r--src/wx/content_panel.cc1
-rw-r--r--src/wx/content_sub_panel.cc1
-rw-r--r--src/wx/content_timeline_dialog.cc1
-rw-r--r--src/wx/dcp_timeline_dialog.cc1
-rw-r--r--src/wx/dolby_doremi_certificate_panel.cc51
-rw-r--r--src/wx/download_certificate_panel.cc5
-rw-r--r--src/wx/film_name_location_dialog.cc1
-rw-r--r--src/wx/film_viewer.cc1
-rw-r--r--src/wx/gdc_certificate_panel.cc5
-rw-r--r--src/wx/gl_video_view.cc8
-rw-r--r--src/wx/job_manager_view.cc1
-rw-r--r--src/wx/job_view.cc1
-rw-r--r--src/wx/name_format_editor.cc2
-rw-r--r--src/wx/name_format_editor.h1
-rw-r--r--src/wx/player_information.cc5
-rw-r--r--src/wx/playlist_controls.cc1
-rw-r--r--src/wx/po/cs_CZ.po10
-rw-r--r--src/wx/po/da_DK.po17
-rw-r--r--src/wx/po/de_DE.po17
-rw-r--r--src/wx/po/es_ES.po17
-rw-r--r--src/wx/po/fa_IR.po15
-rw-r--r--src/wx/po/fr_FR.po17
-rw-r--r--src/wx/po/hu_HU.po6
-rw-r--r--src/wx/po/it_IT.po17
-rw-r--r--src/wx/po/nl_NL.po12
-rw-r--r--src/wx/po/pl_PL.po19
-rw-r--r--src/wx/po/pt_BR.po17
-rw-r--r--src/wx/po/pt_PT.po11
-rw-r--r--src/wx/po/ru_RU.po14
-rw-r--r--src/wx/po/sk_SK.po11
-rw-r--r--src/wx/po/sl_SI.po19
-rw-r--r--src/wx/po/sv_SE.po19
-rw-r--r--src/wx/po/tr_TR.po6
-rw-r--r--src/wx/po/uk_UA.po17
-rw-r--r--src/wx/po/zh_CN.po12
-rw-r--r--src/wx/qube_certificate_panel.cc7
-rw-r--r--src/wx/recipient_dialog.cc1
-rw-r--r--src/wx/screen_dialog.cc1
-rw-r--r--src/wx/simple_video_view.cc4
-rw-r--r--src/wx/video_view.cc2
-rw-r--r--src/wx/wx_util.cc2
46 files changed, 184 insertions, 220 deletions
diff --git a/src/wx/about_dialog.cc b/src/wx/about_dialog.cc
index 2abf0ef17..c3f8b1d59 100644
--- a/src/wx/about_dialog.cc
+++ b/src/wx/about_dialog.cc
@@ -27,7 +27,6 @@
#include "static_text.h"
#include "wx_util.h"
#include "wx_variant.h"
-#include "lib/compose.hpp"
#include "lib/variant.h"
#include "lib/version.h"
#include <dcp/warnings.h>
@@ -61,9 +60,9 @@ AboutDialog::AboutDialog(wxWindow* parent)
wxString s;
if (strcmp(dcpomatic_git_commit, "release") == 0) {
- t = new StaticText(this, std_to_wx(String::compose("Version %1", dcpomatic_version)));
+ t = new StaticText(this, std_to_wx(fmt::format("Version {}", dcpomatic_version)));
} else {
- t = new StaticText(this, std_to_wx(String::compose("Version %1 git %2", dcpomatic_version, dcpomatic_git_commit)));
+ t = new StaticText(this, std_to_wx(fmt::format("Version {} git {}", dcpomatic_version, dcpomatic_git_commit)));
}
t->SetFont(version_font);
sizer->Add(t, wxSizerFlags().Centre().Border(wxALL, 2));
@@ -94,7 +93,7 @@ AboutDialog::AboutDialog(wxWindow* parent)
{
t = new StaticText(
this,
- _("(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\nOle Laursen, Aaron Boxer"),
+ _("(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\nAaron Boxer"),
wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER
);
@@ -106,7 +105,6 @@ AboutDialog::AboutDialog(wxWindow* parent)
written_by.Add(char_to_wx("Carl Hetherington"));
written_by.Add(char_to_wx("Terrence Meiczinger"));
written_by.Add(char_to_wx("Mart Jansink"));
- written_by.Add(char_to_wx("Ole Laursen"));
written_by.Add(char_to_wx("Aaron Boxer"));
written_by.Add(char_to_wx("Benjamin Radel"));
add_section(_("Written by"), written_by);
diff --git a/src/wx/audio_plot.cc b/src/wx/audio_plot.cc
index ad478ddd0..3982f9705 100644
--- a/src/wx/audio_plot.cc
+++ b/src/wx/audio_plot.cc
@@ -24,7 +24,6 @@
#include "wx_util.h"
#include "lib/audio_decoder.h"
#include "lib/audio_analysis.h"
-#include "lib/compose.hpp"
#include "lib/constants.h"
#include "lib/maths_util.h"
#include <dcp/warnings.h>
@@ -197,7 +196,7 @@ AudioPlot::paint ()
int const y = (metrics.height - (i - _minimum) * metrics.y_scale) - metrics.y_origin;
h_grid.MoveToPoint (metrics.db_label_width - 4, y);
h_grid.AddLineToPoint (metrics.db_label_width + data_width, y);
- gc->DrawText (std_to_wx (String::compose ("%1dB", i)), 0, y - (db_label_height / 2));
+ gc->DrawText (std_to_wx (fmt::format("{}dB", i)), 0, y - (db_label_height / 2));
}
wxColour const grid_colour = gui_is_dark() ? wxColour(80, 80, 80) : wxColour(200, 200, 200);
diff --git a/src/wx/barco_alchemy_certificate_panel.cc b/src/wx/barco_alchemy_certificate_panel.cc
index 34b2aa82e..879097e48 100644
--- a/src/wx/barco_alchemy_certificate_panel.cc
+++ b/src/wx/barco_alchemy_certificate_panel.cc
@@ -23,7 +23,6 @@
#include "download_certificate_dialog.h"
#include "wx_util.h"
#include "lib/internet.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
#include <boost/algorithm/string.hpp>
@@ -61,8 +60,8 @@ BarcoAlchemyCertificatePanel::do_download ()
{
string serial = wx_to_std (_serial->GetValue());
trim(serial);
- string url = String::compose (
- "sftp://%1:%2@certificates.barco.com/%3xxx/%4/Barco-ICMP.%5_cert.pem",
+ string url = fmt::format(
+ "sftp://{}:{}@certificates.barco.com/{}xxx/{}/Barco-ICMP.{}_cert.pem",
Config::instance()->barco_username().get(),
Config::instance()->barco_password().get(),
serial.substr(0, 7),
diff --git a/src/wx/christie_certificate_panel.cc b/src/wx/christie_certificate_panel.cc
index 3536f5045..de4c6969d 100644
--- a/src/wx/christie_certificate_panel.cc
+++ b/src/wx/christie_certificate_panel.cc
@@ -22,7 +22,6 @@
#include "download_certificate_dialog.h"
#include "wx_util.h"
#include "lib/internet.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
using std::string;
@@ -50,8 +49,8 @@ ChristieCertificatePanel::ChristieCertificatePanel (DownloadCertificateDialog* d
void
ChristieCertificatePanel::do_download ()
{
- string const prefix = String::compose(
- "ftp://%1:%2@certificates.christiedigital.com/Certificates/",
+ string const prefix = fmt::format(
+ "ftp://{}:{}@certificates.christiedigital.com/Certificates/",
Config::instance()->christie_username().get(),
Config::instance()->christie_password().get()
);
@@ -59,7 +58,7 @@ ChristieCertificatePanel::do_download ()
string serial = wx_to_std (_serial->GetValue());
serial.insert (0, 12 - serial.length(), '0');
- string const url = String::compose ("%1F-IMB/F-IMB_%2_sha256.pem", prefix, serial);
+ string const url = fmt::format("{}F-IMB/F-IMB_{}_sha256.pem", prefix, serial);
optional<string> all_errors;
bool ok = true;
@@ -68,7 +67,7 @@ ChristieCertificatePanel::do_download ()
if (error) {
all_errors = *error;
- auto const url = String::compose ("%1IMB-S2/IMB-S2_%2_sha256.pem", prefix, serial);
+ auto const url = fmt::format("{}IMB-S2/IMB-S2_{}_sha256.pem", prefix, serial);
error = get_from_url (url, true, false, boost::bind(&DownloadCertificatePanel::load_certificate_from_chain, this, _1, _2));
if (error) {
diff --git a/src/wx/closed_captions_dialog.cc b/src/wx/closed_captions_dialog.cc
index b8618c0cd..34c5681a7 100644
--- a/src/wx/closed_captions_dialog.cc
+++ b/src/wx/closed_captions_dialog.cc
@@ -23,7 +23,6 @@
#include "film_viewer.h"
#include "wx_util.h"
#include "lib/butler.h"
-#include "lib/compose.hpp"
#include "lib/constants.h"
#include "lib/film.h"
#include "lib/string_text.h"
@@ -254,7 +253,7 @@ ClosedCaptionsDialog::update_tracks (shared_ptr<const Film> film)
_track->Clear ();
for (auto const& i: _tracks) {
- _track->Append(std_to_wx(String::compose("%1 (%2)", i.name, i.language ? i.language->as_string() : wx_to_std(_("Unknown")))));
+ _track->Append(std_to_wx(fmt::format("{} ({})", i.name, i.language ? i.language->as_string() : wx_to_std(_("Unknown")))));
}
if (_track->GetCount() > 0) {
diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc
index 218dd2c36..06a257dbb 100644
--- a/src/wx/content_panel.cc
+++ b/src/wx/content_panel.cc
@@ -34,7 +34,6 @@
#include "wx_variant.h"
#include "lib/audio_content.h"
#include "lib/case_insensitive_sorter.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
#include "lib/content_factory.h"
#include "lib/cross.h"
diff --git a/src/wx/content_sub_panel.cc b/src/wx/content_sub_panel.cc
index 10fdfa232..8b60c740e 100644
--- a/src/wx/content_sub_panel.cc
+++ b/src/wx/content_sub_panel.cc
@@ -23,7 +23,6 @@
#include "content_panel.h"
#include "wx_util.h"
#include "lib/dcp_content.h"
-#include "lib/compose.hpp"
#include "lib/log.h"
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
diff --git a/src/wx/content_timeline_dialog.cc b/src/wx/content_timeline_dialog.cc
index 697e6561f..4d1bbb1d4 100644
--- a/src/wx/content_timeline_dialog.cc
+++ b/src/wx/content_timeline_dialog.cc
@@ -23,7 +23,6 @@
#include "content_timeline_dialog.h"
#include "film_editor.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/cross.h"
#include "lib/film.h"
#include "lib/playlist.h"
diff --git a/src/wx/dcp_timeline_dialog.cc b/src/wx/dcp_timeline_dialog.cc
index 2cf6a74f1..45c58aed9 100644
--- a/src/wx/dcp_timeline_dialog.cc
+++ b/src/wx/dcp_timeline_dialog.cc
@@ -23,7 +23,6 @@
#include "dcp_timeline_dialog.h"
#include "film_editor.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/cross.h"
#include "lib/film.h"
#include "lib/playlist.h"
diff --git a/src/wx/dolby_doremi_certificate_panel.cc b/src/wx/dolby_doremi_certificate_panel.cc
index 24d8eb31a..5b7b40cf8 100644
--- a/src/wx/dolby_doremi_certificate_panel.cc
+++ b/src/wx/dolby_doremi_certificate_panel.cc
@@ -22,7 +22,6 @@
#include "dolby_doremi_certificate_panel.h"
#include "download_certificate_dialog.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/internet.h"
#include "lib/signal_manager.h"
#include "lib/util.h"
@@ -66,28 +65,28 @@ DolbyDoremiCertificatePanel::DolbyDoremiCertificatePanel (DownloadCertificateDia
static void
try_common(vector<Location>& locations, string prefix, string serial)
{
- auto files = ls_url(String::compose("%1%2xxx/", prefix, serial.substr(0, 3)));
+ auto files = ls_url(fmt::format("{}{}xxx/", prefix, serial.substr(0, 3)));
auto check = [&locations, prefix, files, serial](string format, string file) {
- auto const zip = String::compose(format, serial);
+ auto const zip = fmt::format(format, serial);
if (find(files.begin(), files.end(), zip) != files.end()) {
locations.push_back({
- String::compose("%1%2xxx/%3", prefix, serial.substr(0, 3), zip),
- String::compose(file, serial)
+ fmt::format("{}{}xxx/{}", prefix, serial.substr(0, 3), zip),
+ fmt::format(file, serial)
});
}
};
- check("Dolby-DCP2000-%1.dcicerts.zip", "Dolby-DCP2000-%1.cert.sha256.pem");
- check("Dolby-DCP2000-%1.certs.zip", "Dolby-DCP2000-%1.cert.sha256.pem");
- check("dcp2000-%1.dcicerts.zip", "dcp2000-%1.cert.sha256.pem");
- check("dcp2000-%1.certs.zip", "dcp2000-%1.cert.sha256.pem");
- check("Dolby-IMB-%1.dcicerts.zip", "Dolby-IMB-%1.cert.sha256.pem");
- check("imb-%1.dcicerts.zip", "imb-%1.cert.sha256.pem");
- check("Dolby-IMS1000-%1.dcicerts.zip", "Dolby-IMS1000-%1.cert.sha256.pem");
- check("Dolby-IMS2000-%1.dcicerts.zip", "Dolby-IMS2000-%1.cert.sha256.pem");
- check("cert_Dolby-IMS3000-%1-SMPTE.zip", "cert_Dolby-IMS3000-%1-SMPTE.pem");
- check("ims-%1.dcicerts.zip", "ims-%1.cert.sha256.pem");
+ check("Dolby-DCP2000-{}.dcicerts.zip", "Dolby-DCP2000-{}.cert.sha256.pem");
+ check("Dolby-DCP2000-{}.certs.zip", "Dolby-DCP2000-{}.cert.sha256.pem");
+ check("dcp2000-{}.dcicerts.zip", "dcp2000-{}.cert.sha256.pem");
+ check("dcp2000-{}.certs.zip", "dcp2000-{}.cert.sha256.pem");
+ check("Dolby-IMB-{}.dcicerts.zip", "Dolby-IMB-{}.cert.sha256.pem");
+ check("imb-{}.dcicerts.zip", "imb-{}.cert.sha256.pem");
+ check("Dolby-IMS1000-{}.dcicerts.zip", "Dolby-IMS1000-{}.cert.sha256.pem");
+ check("Dolby-IMS2000-{}.dcicerts.zip", "Dolby-IMS2000-{}.cert.sha256.pem");
+ check("cert_Dolby-IMS3000-{}-SMPTE.zip", "cert_Dolby-IMS3000-{}-SMPTE.pem");
+ check("ims-{}.dcicerts.zip", "ims-{}.cert.sha256.pem");
}
@@ -103,12 +102,12 @@ try_cat862(vector<Location>& locations, string prefix, string serial)
cat862 = "CAT862_617000_and_higher";
} else {
int const lower = serial_int - (serial_int % 1000);
- cat862 = String::compose ("CAT862_%1-%2", lower, lower + 999);
+ cat862 = fmt::format("CAT862_{}-{}", lower, lower + 999);
}
locations.push_back({
- String::compose("%1%2/cert_Dolby256-CAT862-%3.zip", prefix, cat862, serial_int),
- String::compose("cert_Dolby256-CAT862-%1.pem.crt", serial_int)
+ fmt::format("{}{}/cert_Dolby256-CAT862-{}.zip", prefix, cat862, serial_int),
+ fmt::format("cert_Dolby256-CAT862-{}.pem.crt", serial_int)
});
}
@@ -125,12 +124,12 @@ try_dsp100(vector<Location>& locations, string prefix, string serial)
dsp100 = "DSP100_3000_and_higher";
} else {
int const lower = serial_int - (serial_int % 1000);
- dsp100 = String::compose ("DSP100_%1_thru_%2", lower, lower + 999);
+ dsp100 = fmt::format("DSP100_{}_thru_{}", lower, lower + 999);
}
locations.push_back({
- String::compose("%1%2/cert_Dolby256-DSP100-%3.zip", prefix, dsp100, serial_int),
- String::compose("cert_Dolby256-DSP100-%1.pem.crt", serial_int)
+ fmt::format("{}{}/cert_Dolby256-DSP100-{}.zip", prefix, dsp100, serial_int),
+ fmt::format("cert_Dolby256-DSP100-{}.pem.crt", serial_int)
});
}
@@ -147,12 +146,12 @@ try_cat745(vector<Location>& locations, string prefix, string serial)
cat745 = "CAT745_6000_and_higher";
} else {
int const lower = serial_int - (serial_int % 1000);
- cat745 = String::compose("CAT745_%1_thru_%2", lower, lower + 999);
+ cat745 = fmt::format("CAT745_{}_thru_{}", lower, lower + 999);
}
locations.push_back({
- String::compose("%1%2/cert_Dolby-CAT745-%3.zip", prefix, cat745, serial_int),
- String::compose("cert_Dolby-CAT745-%1.pem.crt", serial_int)
+ fmt::format("{}{}/cert_Dolby-CAT745-{}.zip", prefix, cat745, serial_int),
+ fmt::format("cert_Dolby-CAT745-{}.pem.crt", serial_int)
});
}
@@ -164,8 +163,8 @@ try_cp850(vector<Location>& locations, string prefix, string serial)
int const lower = serial_int - (serial_int % 1000);
locations.push_back({
- String::compose ("%1CP850_CAT1600_F%2-F%3/cert_RMB_SPB_MDE_FMA.Dolby-CP850-F%4.zip", prefix, lower, lower + 999, serial_int),
- String::compose ("cert_RMB_SPB_MDE_FMA.Dolby-CP850-F%1.pem.crt", serial_int)
+ fmt::format("{}CP850_CAT1600_F{}-F{}/cert_RMB_SPB_MDE_FMA.Dolby-CP850-F{}.zip", prefix, lower, lower + 999, serial_int),
+ fmt::format("cert_RMB_SPB_MDE_FMA.Dolby-CP850-F{}.pem.crt", serial_int)
});
}
diff --git a/src/wx/download_certificate_panel.cc b/src/wx/download_certificate_panel.cc
index 8f826315d..5995b0385 100644
--- a/src/wx/download_certificate_panel.cc
+++ b/src/wx/download_certificate_panel.cc
@@ -22,7 +22,6 @@
#include "download_certificate_dialog.h"
#include "download_certificate_panel.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/signal_manager.h"
#include <dcp/certificate_chain.h>
#include <dcp/exceptions.h>
@@ -64,7 +63,7 @@ DownloadCertificatePanel::load_certificate (boost::filesystem::path file, string
_certificate = dcp::Certificate (dcp::file_to_string(file));
_url = url;
} catch (dcp::MiscError& e) {
- return String::compose(wx_to_std(_("Could not read certificate file (%1)")), e.what());
+ return fmt::format(wx_to_std(_("Could not read certificate file ({})")), e.what());
}
return {};
}
@@ -77,7 +76,7 @@ DownloadCertificatePanel::load_certificate_from_chain (boost::filesystem::path f
_certificate = dcp::CertificateChain(dcp::file_to_string(file)).leaf();
_url = url;
} catch (dcp::MiscError& e) {
- return String::compose(wx_to_std(_("Could not read certificate file (%1)")), e.what());
+ return fmt::format(wx_to_std(_("Could not read certificate file ({})")), e.what());
}
return {};
}
diff --git a/src/wx/film_name_location_dialog.cc b/src/wx/film_name_location_dialog.cc
index 2933c1b31..893b789f9 100644
--- a/src/wx/film_name_location_dialog.cc
+++ b/src/wx/film_name_location_dialog.cc
@@ -26,7 +26,6 @@
#ifdef DCPOMATIC_USE_OWN_PICKER
#include "dir_picker_ctrl.h"
#endif
-#include "lib/compose.hpp"
#include "lib/config.h"
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc
index 7b22999b0..45476c75d 100644
--- a/src/wx/film_viewer.cc
+++ b/src/wx/film_viewer.cc
@@ -34,7 +34,6 @@
#include "simple_video_view.h"
#include "wx_util.h"
#include "lib/butler.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
#include "lib/dcp_content.h"
#include "lib/dcpomatic_log.h"
diff --git a/src/wx/gdc_certificate_panel.cc b/src/wx/gdc_certificate_panel.cc
index 7e81c5a60..bbbafd61b 100644
--- a/src/wx/gdc_certificate_panel.cc
+++ b/src/wx/gdc_certificate_panel.cc
@@ -22,7 +22,6 @@
#include "download_certificate_dialog.h"
#include "gdc_certificate_panel.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
#include "lib/internet.h"
#include <boost/algorithm/string.hpp>
@@ -56,8 +55,8 @@ GDCCertificatePanel::do_download ()
{
string serial = wx_to_std (_serial->GetValue());
trim(serial);
- string url = String::compose(
- "ftp://%1:%2@ftp.gdc-tech.com/SHA256/%3.crt.pem",
+ string url = fmt::format(
+ "ftp://{}:{}@ftp.gdc-tech.com/SHA256/{}.crt.pem",
Config::instance()->gdc_username().get(),
Config::instance()->gdc_password().get(),
serial
diff --git a/src/wx/gl_video_view.cc b/src/wx/gl_video_view.cc
index 4ca5af21a..d1107f94f 100644
--- a/src/wx/gl_video_view.cc
+++ b/src/wx/gl_video_view.cc
@@ -109,7 +109,7 @@ GLVideoView::size_changed(wxSizeEvent const& ev)
int const width = std::round(ev.GetSize().GetWidth() * scale);
int const height = std::round(ev.GetSize().GetHeight() * scale);
_canvas_size = { width, height };
- LOG_GENERAL("GLVideoView canvas size changed to %1x%2", width, height);
+ LOG_GENERAL("GLVideoView canvas size changed to {}x{}", width, height);
Sized();
}
@@ -139,7 +139,7 @@ GLVideoView::check_for_butler_errors()
error_dialog(get(), wxString::Format(_("Could not read DCP: %s"), std_to_wx(e.what())));
}
- LOG_DEBUG_PLAYER("Latency %1", _viewer->average_latency());
+ LOG_DEBUG_PLAYER("Latency {}", _viewer->average_latency());
}
@@ -443,7 +443,7 @@ GLVideoView::setup_shaders()
log = string(log_char.data());
}
glDeleteShader(shader);
- throw GLError(String::compose("Could not compile shader (%1)", log).c_str(), -1);
+ throw GLError(fmt::format("Could not compile shader ({})", log).c_str(), -1);
}
return shader;
};
@@ -471,7 +471,7 @@ GLVideoView::setup_shaders()
log = string(log_char.data());
}
glDeleteProgram(program);
- throw GLError(String::compose("Could not link shader (%1)", log).c_str(), -1);
+ throw GLError(fmt::format("Could not link shader ({})", log).c_str(), -1);
}
glDeleteShader(vertex_shader);
glDeleteShader(fragment_shader);
diff --git a/src/wx/job_manager_view.cc b/src/wx/job_manager_view.cc
index 9c3c29baa..7e445a9db 100644
--- a/src/wx/job_manager_view.cc
+++ b/src/wx/job_manager_view.cc
@@ -29,7 +29,6 @@
#include "job_manager_view.h"
#include "normal_job_view.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/exceptions.h"
#include "lib/job.h"
#include "lib/job_manager.h"
diff --git a/src/wx/job_view.cc b/src/wx/job_view.cc
index aa175816d..7ed44ee1e 100644
--- a/src/wx/job_view.cc
+++ b/src/wx/job_view.cc
@@ -27,7 +27,6 @@
#include "wx_util.h"
#include "wx_variant.h"
#include "lib/analyse_audio_job.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
#include "lib/job.h"
#include "lib/job_manager.h"
diff --git a/src/wx/name_format_editor.cc b/src/wx/name_format_editor.cc
index ce0760486..f811871e3 100644
--- a/src/wx/name_format_editor.cc
+++ b/src/wx/name_format_editor.cc
@@ -45,7 +45,7 @@ NameFormatEditor::NameFormatEditor (wxWindow* parent, dcp::NameFormat name, dcp:
auto titles_sizer = new wxFlexGridSizer (2);
for (auto const& i: titles) {
- auto t = new StaticText (_panel, std_to_wx (String::compose ("%%%1 %2", i.first, i.second)));
+ auto t = new StaticText (_panel, std_to_wx (fmt::format("%%{} {}", i.first, i.second)));
titles_sizer->Add(t, 1, wxRIGHT, DCPOMATIC_SIZER_X_GAP);
auto font = t->GetFont();
font.SetStyle (wxFONTSTYLE_ITALIC);
diff --git a/src/wx/name_format_editor.h b/src/wx/name_format_editor.h
index b4fe5691e..70a02a902 100644
--- a/src/wx/name_format_editor.h
+++ b/src/wx/name_format_editor.h
@@ -23,7 +23,6 @@
#define DCPOMATIC_NAME_FORMAT_EDITOR_H
-#include "lib/compose.hpp"
#include <dcp/name_format.h>
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
diff --git a/src/wx/player_information.cc b/src/wx/player_information.cc
index 9b8aafd18..6eed7ae2f 100644
--- a/src/wx/player_information.cc
+++ b/src/wx/player_information.cc
@@ -23,7 +23,6 @@
#include "wx_util.h"
#include "film_viewer.h"
#include "lib/playlist.h"
-#include "lib/compose.hpp"
#include "lib/video_content.h"
#include "lib/audio_content.h"
#include "lib/dcp_content.h"
@@ -178,8 +177,8 @@ PlayerInformation::triggered_update ()
vfr = dcp->video_frame_rate ();
DCPOMATIC_ASSERT (vfr);
- auto const len = String::compose(
- wx_to_std(_("Length: %1 (%2 frames)")),
+ auto const len = fmt::format(
+ wx_to_std(_("Length: {} ({} frames)")),
time_to_hmsf(dcp->full_length(_viewer.film()), lrint(*vfr)),
dcp->full_length(_viewer.film()).frames_round(*vfr)
);
diff --git a/src/wx/playlist_controls.cc b/src/wx/playlist_controls.cc
index 87a0e9a4a..c7dad4139 100644
--- a/src/wx/playlist_controls.cc
+++ b/src/wx/playlist_controls.cc
@@ -26,7 +26,6 @@
#include "static_text.h"
#include "wx_util.h"
#include "wx_variant.h"
-#include "lib/compose.hpp"
#include "lib/constants.h"
#include "lib/cross.h"
#include "lib/dcp_content.h"
diff --git a/src/wx/po/cs_CZ.po b/src/wx/po/cs_CZ.po
index 16f18f4a1..b7a1b2db7 100644
--- a/src/wx/po/cs_CZ.po
+++ b/src/wx/po/cs_CZ.po
@@ -110,10 +110,10 @@ msgstr "%s testovací email"
#: src/wx/about_dialog.cc:97
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, c-format
@@ -1004,7 +1004,7 @@ msgstr "Nelze načíst DCP: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Nelze načíst soubor certifikátu (% 1)"
#: src/wx/certificate_chain_editor.cc:195
@@ -1949,8 +1949,8 @@ msgid "Length"
msgstr "Délka"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Délka: %1 (%2 snímků)"
+msgid "Length: {} ({} frames)"
+msgstr "Délka: {} ({} snímků)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
diff --git a/src/wx/po/da_DK.po b/src/wx/po/da_DK.po
index fd71448b0..ffbd4ee6f 100644
--- a/src/wx/po/da_DK.po
+++ b/src/wx/po/da_DK.po
@@ -94,7 +94,7 @@ msgstr ""
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
msgstr ""
-"%1 eksisterer allerede som en fil, så du kan ikke bruge det til en film."
+"{} eksisterer allerede som en fil, så du kan ikke bruge det til en film."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -107,13 +107,12 @@ msgid "%s test email"
msgstr "Send som e-mail"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2019 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1033,7 +1032,7 @@ msgstr "Kunne ikke indlæse KDM"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Kunne ikke læse certifikatfil."
#: src/wx/certificate_chain_editor.cc:195
@@ -1980,8 +1979,8 @@ msgid "Length"
msgstr "Længde"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Længde: %1 (%2 billeder)"
+msgid "Length: {} ({} frames)"
+msgstr "Længde: {} ({} billeder)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3629,7 +3628,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"Folderen %1 eksisterer allerede og er ikke tom. Er du sikker på at du vil "
+"Folderen {} eksisterer allerede og er ikke tom. Er du sikker på at du vil "
"benytte den?"
#: src/wx/try_unmount_dialog.cc:44
diff --git a/src/wx/po/de_DE.po b/src/wx/po/de_DE.po
index 3fd42efae..14650250d 100644
--- a/src/wx/po/de_DE.po
+++ b/src/wx/po/de_DE.po
@@ -95,7 +95,7 @@ msgstr ""
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
msgstr ""
-"%1 existiert hier bereits als Dateiname, Sie müssen einen anderen Namen "
+"{} existiert hier bereits als Dateiname, Sie müssen einen anderen Namen "
"wählen!"
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
@@ -109,13 +109,12 @@ msgid "%s test email"
msgstr "Per Email senden"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2019 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1060,7 +1059,7 @@ msgstr "Konnte KDM nicht laden"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Konnte die Zertifikatsdatei nicht lesen."
#: src/wx/certificate_chain_editor.cc:195
@@ -2052,8 +2051,8 @@ msgid "Length"
msgstr "Länge"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Länge: %1 (%2 Bilder)"
+msgid "Length: {} ({} frames)"
+msgstr "Länge: {} ({} Bilder)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3733,7 +3732,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"Das Verzeichnis %1 existiert bereits und ist nicht leer. Wollen Sie es "
+"Das Verzeichnis {} existiert bereits und ist nicht leer. Wollen Sie es "
"dennoch verwenden?"
#: src/wx/try_unmount_dialog.cc:44
diff --git a/src/wx/po/es_ES.po b/src/wx/po/es_ES.po
index 02cec77d3..1a506c941 100644
--- a/src/wx/po/es_ES.po
+++ b/src/wx/po/es_ES.po
@@ -93,7 +93,7 @@ msgstr "Preferencias DVD-o-matic"
#: src/wx/film_name_location_dialog.cc:156
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
-msgstr "%1 ya existe como fichero, no puede usarlo para una película."
+msgstr "{} ya existe como fichero, no puede usarlo para una película."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -106,13 +106,12 @@ msgid "%s test email"
msgstr "Enviar por email"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2018 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1036,7 +1035,7 @@ msgstr "No se pudo cargar la KDM."
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "No se pudo leer el fichero de certificado."
#: src/wx/certificate_chain_editor.cc:195
@@ -1992,8 +1991,8 @@ msgid "Length"
msgstr "Longitud"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Longitud: %1 (%2 imágenes)"
+msgid "Length: {} ({} frames)"
+msgstr "Longitud: {} ({} imágenes)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3651,7 +3650,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"La carpeta %1 ya existe y no está vacía. ¿Está seguro de querer usarla?"
+"La carpeta {} ya existe y no está vacía. ¿Está seguro de querer usarla?"
#: src/wx/try_unmount_dialog.cc:44
#, c-format
diff --git a/src/wx/po/fa_IR.po b/src/wx/po/fa_IR.po
index 9ce33de2e..07ba1cf5c 100644
--- a/src/wx/po/fa_IR.po
+++ b/src/wx/po/fa_IR.po
@@ -109,13 +109,12 @@ msgid "%s test email"
msgstr "ایمیل تست %s"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2024 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Aaron Boxer"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, c-format
@@ -1005,8 +1004,8 @@ msgstr "نمیتوان این دی سی پی را خواند: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "نمیتوان این فایل گواهی نامه را خواند (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "نمیتوان این فایل گواهی نامه را خواند ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1948,8 +1947,8 @@ msgid "Length"
msgstr "مدت"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "مدت: %1 (%2 فریم)"
+msgid "Length: {} ({} frames)"
+msgstr "مدت: {} ({} فریم)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
diff --git a/src/wx/po/fr_FR.po b/src/wx/po/fr_FR.po
index 49051c422..71b534918 100644
--- a/src/wx/po/fr_FR.po
+++ b/src/wx/po/fr_FR.po
@@ -108,13 +108,12 @@ msgid "%s test email"
msgstr "e-mail de test %s"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2024 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, c-format
@@ -1020,8 +1019,8 @@ msgstr "Impossible de lire le DCP : %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "Impossible de lire le fichier de certificat (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "Impossible de lire le fichier de certificat ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1975,8 +1974,8 @@ msgid "Length"
msgstr "Durée"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Durée : %1 (%2 images)"
+msgid "Length: {} ({} frames)"
+msgstr "Durée : {} ({} images)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3626,7 +3625,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"Le répertoire %1 existe déjà et n'est pas vide. Êtes-vous sûr de vouloir "
+"Le répertoire {} existe déjà et n'est pas vide. Êtes-vous sûr de vouloir "
"l'utiliser ?"
#: src/wx/try_unmount_dialog.cc:44
diff --git a/src/wx/po/hu_HU.po b/src/wx/po/hu_HU.po
index f7f1b1967..271f2a6e5 100644
--- a/src/wx/po/hu_HU.po
+++ b/src/wx/po/hu_HU.po
@@ -108,7 +108,7 @@ msgstr ""
#: src/wx/about_dialog.cc:97
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
@@ -989,7 +989,7 @@ msgstr ""
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr ""
#: src/wx/certificate_chain_editor.cc:195
@@ -1898,7 +1898,7 @@ msgid "Length"
msgstr ""
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
+msgid "Length: {} ({} frames)"
msgstr ""
#: src/wx/text_panel.cc:104
diff --git a/src/wx/po/it_IT.po b/src/wx/po/it_IT.po
index 7c0f1576a..a0a8396d6 100644
--- a/src/wx/po/it_IT.po
+++ b/src/wx/po/it_IT.po
@@ -93,7 +93,7 @@ msgstr "Preferenze DVD-o-matic"
#: src/wx/film_name_location_dialog.cc:156
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
-msgstr "%1 esiste già come file, quindi non puoi usarlo per il film."
+msgstr "{} esiste già come file, quindi non puoi usarlo per il film."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -106,13 +106,12 @@ msgid "%s test email"
msgstr "Invia per email"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2018 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1035,7 +1034,7 @@ msgstr "Impossibile caricare la KDM (%s)"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Impossibile leggere il file del certificato."
#: src/wx/certificate_chain_editor.cc:195
@@ -1983,8 +1982,8 @@ msgid "Length"
msgstr "Lunghezza"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Lunghezza: %1 (%2 fotogrammi)"
+msgid "Length: {} ({} frames)"
+msgstr "Lunghezza: {} ({} fotogrammi)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3635,7 +3634,7 @@ msgstr ""
msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
-msgstr "La directory %1 esiste già e non è vuota. Sei sicuro di volerla usare?"
+msgstr "La directory {} esiste già e non è vuota. Sei sicuro di volerla usare?"
#: src/wx/try_unmount_dialog.cc:44
#, c-format
diff --git a/src/wx/po/nl_NL.po b/src/wx/po/nl_NL.po
index 1e4e0c5d2..edef91337 100644
--- a/src/wx/po/nl_NL.po
+++ b/src/wx/po/nl_NL.po
@@ -110,10 +110,10 @@ msgstr "%s test e-mail"
#: src/wx/about_dialog.cc:97
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, c-format
@@ -1018,8 +1018,8 @@ msgstr "Kan DCP niet lezen: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "Kan certificaat-bestand niet lezen (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "Kan certificaat-bestand niet lezen ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1964,8 +1964,8 @@ msgid "Length"
msgstr "Lengte"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Lengte: %1 (%2 frames)"
+msgid "Length: {} ({} frames)"
+msgstr "Lengte: {} ({} frames)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
diff --git a/src/wx/po/pl_PL.po b/src/wx/po/pl_PL.po
index 4d28e391c..eeab7a6e5 100644
--- a/src/wx/po/pl_PL.po
+++ b/src/wx/po/pl_PL.po
@@ -95,7 +95,7 @@ msgstr ""
#: src/wx/film_name_location_dialog.cc:156
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
-msgstr "%1 istnieje już jako plik, więc nie możesz użyć go w Projekcie."
+msgstr "{} istnieje już jako plik, więc nie możesz użyć go w Projekcie."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -108,13 +108,12 @@ msgid "%s test email"
msgstr "Wyślij emailem"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2022 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1039,8 +1038,8 @@ msgstr "Nie udało się odczytać DCP: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "Nie udało się odczytać pliku certyfikatu (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "Nie udało się odczytać pliku certyfikatu ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -2002,8 +2001,8 @@ msgid "Length"
msgstr "Długość"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Długość: %1 (%2 klatki)"
+msgid "Length: {} ({} frames)"
+msgstr "Długość: {} ({} klatki)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3679,7 +3678,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"Lokalizacja %1 już istnieje i nie jest pusta. Na pewno chcesz jej użyć?"
+"Lokalizacja {} już istnieje i nie jest pusta. Na pewno chcesz jej użyć?"
#: src/wx/try_unmount_dialog.cc:44
#, fuzzy, c-format
diff --git a/src/wx/po/pt_BR.po b/src/wx/po/pt_BR.po
index 7244a5f21..993ec7665 100644
--- a/src/wx/po/pt_BR.po
+++ b/src/wx/po/pt_BR.po
@@ -94,7 +94,7 @@ msgstr ""
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
msgstr ""
-"%1 já existe como um arquivo, portanto você não pode usá-lo para um filme."
+"{} já existe como um arquivo, portanto você não pode usá-lo para um filme."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -107,13 +107,12 @@ msgid "%s test email"
msgstr "Enviar por email"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2018 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1040,7 +1039,7 @@ msgstr "Não foi possível carregar o KDM."
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Não foi possível ler o arquivo de certificado."
#: src/wx/certificate_chain_editor.cc:195
@@ -1994,8 +1993,8 @@ msgid "Length"
msgstr "Duração"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Duração: %1 (%2 quadros)"
+msgid "Length: {} ({} frames)"
+msgstr "Duração: {} ({} quadros)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3654,7 +3653,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"O diretório %1 já existe e não está vazio. Tem certeza que deseja usá-lo?"
+"O diretório {} já existe e não está vazio. Tem certeza que deseja usá-lo?"
#: src/wx/try_unmount_dialog.cc:44
#, c-format
diff --git a/src/wx/po/pt_PT.po b/src/wx/po/pt_PT.po
index c2aa17dfa..efdc6401a 100644
--- a/src/wx/po/pt_PT.po
+++ b/src/wx/po/pt_PT.po
@@ -107,13 +107,12 @@ msgid "%s test email"
msgstr "Enviar por email"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2019 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1036,7 +1035,7 @@ msgstr "Não foi possível carregar a KDM (%s)"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Não foi possível ler o ficheiro do certificado (%s)"
#: src/wx/certificate_chain_editor.cc:195
@@ -1994,7 +1993,7 @@ msgid "Length"
msgstr ""
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
+msgid "Length: {} ({} frames)"
msgstr ""
#: src/wx/text_panel.cc:104
diff --git a/src/wx/po/ru_RU.po b/src/wx/po/ru_RU.po
index d034e563c..47acc9a79 100644
--- a/src/wx/po/ru_RU.po
+++ b/src/wx/po/ru_RU.po
@@ -107,10 +107,10 @@ msgstr "%s пробное письмо"
#: src/wx/about_dialog.cc:97
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2022 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Aaron Boxer"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, c-format
@@ -1007,8 +1007,8 @@ msgstr "Не удалось прочитать DCP: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "Не удалось прочитать файл сертификата (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "Не удалось прочитать файл сертификата ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1957,8 +1957,8 @@ msgid "Length"
msgstr "Продолжительность"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Продолжительность: %1 (%2 кадра(ов))"
+msgid "Length: {} ({} frames)"
+msgstr "Продолжительность: {} ({} кадра(ов))"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
diff --git a/src/wx/po/sk_SK.po b/src/wx/po/sk_SK.po
index 5fc6c811c..99faaf717 100644
--- a/src/wx/po/sk_SK.po
+++ b/src/wx/po/sk_SK.po
@@ -108,13 +108,12 @@ msgid "%s test email"
msgstr "Odoslať emailom"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2015 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1041,7 +1040,7 @@ msgstr "Nemôžem načítať kDM (%s)"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Nemôžem načítať súbor s certifikátom (%s)"
#: src/wx/certificate_chain_editor.cc:195
@@ -1999,7 +1998,7 @@ msgid "Length"
msgstr ""
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
+msgid "Length: {} ({} frames)"
msgstr ""
#: src/wx/text_panel.cc:104
diff --git a/src/wx/po/sl_SI.po b/src/wx/po/sl_SI.po
index e44585741..5b404bbf5 100644
--- a/src/wx/po/sl_SI.po
+++ b/src/wx/po/sl_SI.po
@@ -93,7 +93,7 @@ msgstr ""
#: src/wx/film_name_location_dialog.cc:156
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
-msgstr "%1 že obstaja kot datoteka, zato je ne morete uporabiti za film."
+msgstr "{} že obstaja kot datoteka, zato je ne morete uporabiti za film."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -106,13 +106,12 @@ msgid "%s test email"
msgstr "Pošlji poskusno e-sporočilo"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2024 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1018,8 +1017,8 @@ msgstr "Ni bilo mogoče prebrati DCP: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "Datoteke potrdila (%1) ni bilo mogoče prebrati"
+msgid "Could not read certificate file ({})"
+msgstr "Datoteke potrdila ({}) ni bilo mogoče prebrati"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1965,8 +1964,8 @@ msgid "Length"
msgstr "Dolžina"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Dolžina: %1 (%2 sličic)"
+msgid "Length: {} ({} frames)"
+msgstr "Dolžina: {} ({} sličic)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3608,7 +3607,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"Mapa %1 že obstaja in ni prazna. Ali ste prepričani, da jo želite uporabiti?"
+"Mapa {} že obstaja in ni prazna. Ali ste prepričani, da jo želite uporabiti?"
#: src/wx/try_unmount_dialog.cc:44
#, fuzzy, c-format
diff --git a/src/wx/po/sv_SE.po b/src/wx/po/sv_SE.po
index b6f34baf9..abcea5adf 100644
--- a/src/wx/po/sv_SE.po
+++ b/src/wx/po/sv_SE.po
@@ -94,7 +94,7 @@ msgstr "DVD-o-matic Inställningar"
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
msgstr ""
-"%1 finns redan som fil, så du kan inte använda det som namn på en film."
+"{} finns redan som fil, så du kan inte använda det som namn på en film."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -108,13 +108,12 @@ msgstr "Skicka med epost"
# Used verbatim without translation
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"(C) 2012-2021 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1034,8 +1033,8 @@ msgstr "Kunde inte ladda DCP: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "Kunde inte läsa certifikatfil (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "Kunde inte läsa certifikatfil ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1999,8 +1998,8 @@ msgid "Length"
msgstr "Speltid"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Speltid: %1 (%2 bildrutor)"
+msgid "Length: {} ({} frames)"
+msgstr "Speltid: {} ({} bildrutor)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3666,7 +3665,7 @@ msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
-"Mappen %1 finns redan och är inte tom. Är du säker på att du vill använda "
+"Mappen {} finns redan och är inte tom. Är du säker på att du vill använda "
"den?"
#: src/wx/try_unmount_dialog.cc:44
diff --git a/src/wx/po/tr_TR.po b/src/wx/po/tr_TR.po
index 07965be19..122a2935c 100644
--- a/src/wx/po/tr_TR.po
+++ b/src/wx/po/tr_TR.po
@@ -108,7 +108,7 @@ msgstr ""
#: src/wx/about_dialog.cc:97
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
@@ -988,7 +988,7 @@ msgstr ""
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr ""
#: src/wx/certificate_chain_editor.cc:195
@@ -1896,7 +1896,7 @@ msgid "Length"
msgstr ""
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
+msgid "Length: {} ({} frames)"
msgstr ""
#: src/wx/text_panel.cc:104
diff --git a/src/wx/po/uk_UA.po b/src/wx/po/uk_UA.po
index d280d2d0e..c2a48b6ae 100644
--- a/src/wx/po/uk_UA.po
+++ b/src/wx/po/uk_UA.po
@@ -92,7 +92,7 @@ msgstr ""
#, fuzzy, c-format
msgid "%s already exists as a file, so you cannot use it for a film."
msgstr ""
-"%1 вже існує як файл, тому ви не можете використовувати його у проекті."
+"{} вже існує як файл, тому ви не можете використовувати його у проекті."
#: src/wx/audio_dialog.cc:170 src/wx/audio_dialog.cc:172
#, fuzzy, c-format
@@ -105,13 +105,12 @@ msgid "%s test email"
msgstr "Відправити по email"
#: src/wx/about_dialog.cc:97
-#, fuzzy
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
-"© 2012-2018 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Brecht Sanders"
+"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, fuzzy, c-format
@@ -1038,7 +1037,7 @@ msgstr "Не вдалося завантажити KDM."
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
#, fuzzy
-msgid "Could not read certificate file (%1)"
+msgid "Could not read certificate file ({})"
msgstr "Не вдалося прочитати файл сертифікату."
#: src/wx/certificate_chain_editor.cc:195
@@ -1991,8 +1990,8 @@ msgid "Length"
msgstr "Тривалість"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "Тривалість: %1 (%2 frames)"
+msgid "Length: {} ({} frames)"
+msgstr "Тривалість: {} ({} frames)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
@@ -3644,7 +3643,7 @@ msgstr ""
msgid ""
"The directory %s already exists and is not empty. Are you sure you want to "
"use it?"
-msgstr "Папка %1 вже існує и не є пустою. Ви точно хочете використовувати її?"
+msgstr "Папка {} вже існує и не є пустою. Ви точно хочете використовувати її?"
#: src/wx/try_unmount_dialog.cc:44
#, c-format
diff --git a/src/wx/po/zh_CN.po b/src/wx/po/zh_CN.po
index d731275a7..ba3fc510e 100644
--- a/src/wx/po/zh_CN.po
+++ b/src/wx/po/zh_CN.po
@@ -121,10 +121,10 @@ msgstr "%s发送测试邮件"
#: src/wx/about_dialog.cc:97
msgid ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-"Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
msgstr ""
"(C) 2012-2025 Carl Hetherington, Terrence Meiczinger\n"
-" Ole Laursen, Aaron Boxer"
+"Aaron Boxer"
#: src/wx/full_config_dialog.cc:1206 src/wx/player_config_dialog.cc:130
#, c-format
@@ -1009,8 +1009,8 @@ msgstr "无法读取 DCP: %s"
#: src/wx/download_certificate_panel.cc:67
#: src/wx/download_certificate_panel.cc:80
-msgid "Could not read certificate file (%1)"
-msgstr "无法读取证书文件 (%1)"
+msgid "Could not read certificate file ({})"
+msgstr "无法读取证书文件 ({})"
#: src/wx/certificate_chain_editor.cc:195
#: src/wx/certificate_chain_editor.cc:382 src/wx/recipient_dialog.cc:158
@@ -1940,8 +1940,8 @@ msgid "Length"
msgstr "长度"
#: src/wx/player_information.cc:182
-msgid "Length: %1 (%2 frames)"
-msgstr "长度: %1 (%2 帧)"
+msgid "Length: {} ({} frames)"
+msgstr "长度: {} ({} 帧)"
#: src/wx/text_panel.cc:104
msgid "Line spacing"
diff --git a/src/wx/qube_certificate_panel.cc b/src/wx/qube_certificate_panel.cc
index de8fa8a49..f246ea384 100644
--- a/src/wx/qube_certificate_panel.cc
+++ b/src/wx/qube_certificate_panel.cc
@@ -22,7 +22,6 @@
#include "download_certificate_dialog.h"
#include "qube_certificate_panel.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/config.h"
#include "lib/internet.h"
#include <boost/algorithm/string.hpp>
@@ -51,7 +50,7 @@ QubeCertificatePanel::QubeCertificatePanel (DownloadCertificateDialog* dialog, s
void
QubeCertificatePanel::do_download ()
{
- auto files = ls_url(String::compose("%1SMPTE-%2/", base, _type));
+ auto files = ls_url(fmt::format("{}SMPTE-{}/", base, _type));
if (files.empty()) {
error_dialog (this, _("Could not read certificates from Qube server."));
return;
@@ -62,7 +61,7 @@ QubeCertificatePanel::do_download ()
optional<string> name;
for (auto i: files) {
- if (boost::algorithm::starts_with(i, String::compose("%1-%2-", _type, serial))) {
+ if (boost::algorithm::starts_with(i, fmt::format("{}-{}-", _type, serial))) {
name = i;
break;
}
@@ -74,7 +73,7 @@ QubeCertificatePanel::do_download ()
return;
}
- auto error = get_from_url (String::compose("%1SMPTE-%2/%3", base, _type, *name), true, false, boost::bind(&DownloadCertificatePanel::load_certificate, this, _1, _2));
+ auto error = get_from_url (fmt::format("{}SMPTE-{}/{}", base, _type, *name), true, false, boost::bind(&DownloadCertificatePanel::load_certificate, this, _1, _2));
if (error) {
_dialog->message()->SetLabel({});
diff --git a/src/wx/recipient_dialog.cc b/src/wx/recipient_dialog.cc
index 85c01c97e..69caa3251 100644
--- a/src/wx/recipient_dialog.cc
+++ b/src/wx/recipient_dialog.cc
@@ -25,7 +25,6 @@
#include "static_text.h"
#include "table_dialog.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/util.h"
#include <dcp/exceptions.h>
#include <dcp/certificate_chain.h>
diff --git a/src/wx/screen_dialog.cc b/src/wx/screen_dialog.cc
index 21786b8a2..84d798065 100644
--- a/src/wx/screen_dialog.cc
+++ b/src/wx/screen_dialog.cc
@@ -26,7 +26,6 @@
#include "static_text.h"
#include "table_dialog.h"
#include "wx_util.h"
-#include "lib/compose.hpp"
#include "lib/util.h"
#include <dcp/warnings.h>
#include <dcp/exceptions.h>
diff --git a/src/wx/simple_video_view.cc b/src/wx/simple_video_view.cc
index 9038920ce..ff16b6146 100644
--- a/src/wx/simple_video_view.cc
+++ b/src/wx/simple_video_view.cc
@@ -166,7 +166,7 @@ SimpleVideoView::timer ()
return;
}
- LOG_DEBUG_VIDEO_VIEW("%1 -> %2; delay %3", next.seconds(), _viewer->time().seconds(), max((next.seconds() - _viewer->time().seconds()) * 1000, 1.0));
+ LOG_DEBUG_VIDEO_VIEW("{} -> {}; delay {}", next.seconds(), _viewer->time().seconds(), max((next.seconds() - _viewer->time().seconds()) * 1000, 1.0));
_timer.Start (max(1, time_until_next_frame().get_value_or(0)), wxTIMER_ONE_SHOT);
if (_viewer->butler()) {
@@ -177,7 +177,7 @@ SimpleVideoView::timer ()
}
}
- LOG_DEBUG_PLAYER("Latency %1", _viewer->average_latency());
+ LOG_DEBUG_PLAYER("Latency {}", _viewer->average_latency());
}
diff --git a/src/wx/video_view.cc b/src/wx/video_view.cc
index c271cb65e..c658e3663 100644
--- a/src/wx/video_view.cc
+++ b/src/wx/video_view.cc
@@ -77,7 +77,7 @@ VideoView::get_next_frame (bool non_blocking)
Butler::Error e;
auto pv = butler->get_video (non_blocking ? Butler::Behaviour::NON_BLOCKING : Butler::Behaviour::BLOCKING, &e);
if (e.code == Butler::Error::Code::DIED) {
- LOG_ERROR ("Butler died with %1", e.summary());
+ LOG_ERROR ("Butler died with {}", e.summary());
}
if (!pv.first) {
return e.code == Butler::Error::Code::AGAIN ? AGAIN : FAIL;
diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc
index afea3b209..47f513276 100644
--- a/src/wx/wx_util.cc
+++ b/src/wx/wx_util.cc
@@ -651,7 +651,7 @@ bitmap_path (string name)
wxString
icon_path(string name)
{
- return gui_is_dark() ? bitmap_path(String::compose("%1_white.png", name)) : bitmap_path(String::compose("%1_black.png", name));
+ return gui_is_dark() ? bitmap_path(fmt::format("{}_white.png", name)) : bitmap_path(fmt::format("{}_black.png", name));
}