Work around deadlock when destroying J2KEncoder with a full writer queue (#2784).
[dcpomatic.git] / src / wx / about_dialog.cc
index 28f39a6bdb83f7f2f0b37f9119179bb71fbb01e0..2c742cce3a1549be4368297cbc0c59cd6f3e4496 100644 (file)
@@ -86,7 +86,7 @@ AboutDialog::AboutDialog (wxWindow* parent)
 
        t = new StaticText (
                this,
-               _("(C) 2012-2022 Carl Hetherington, Terrence Meiczinger\n Ole Laursen"),
+               _("(C) 2012-2024 Carl Hetherington, Terrence Meiczinger\n Ole Laursen"),
                wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER
                );
 
@@ -123,6 +123,7 @@ AboutDialog::AboutDialog (wxWindow* parent)
        translated_by.Add (wxT ("Cherif Ben Brahim"));
        translated_by.Add (wxT ("Massimiliano Broggi"));
        translated_by.Add (wxT ("Dan Cohen"));
+       translated_by.Add (wxT ("Akivili Collindort"));
        translated_by.Add (wxT ("Davide Dall'AraCiao"));
        translated_by.Add (wxT ("Uwe Dittes"));
        translated_by.Add (wxT ("Михаил Эпштейн"));
@@ -142,21 +143,21 @@ AboutDialog::AboutDialog (wxWindow* parent)
        translated_by.Add (wxT ("David Perrenoud"));
        translated_by.Add (wxT ("Olivier Perriere"));
        translated_by.Add (wxT ("Markus Raab"));
+       translated_by.Add (wxT ("Soleyman Rahmani"));
        translated_by.Add (wxT ("Tiago Casal Ribeiro"));
        translated_by.Add (wxT ("Davide Sanvito"));
        translated_by.Add (wxT ("Marek Skrzelowski"));
+       translated_by.Add (wxT ("Danbo Song"));
        translated_by.Add (wxT ("Martin Srebotnjak"));
        translated_by.Add (wxT ("Michał Tomaszewski"));
        translated_by.Add (wxT ("Igor Voytovich"));
        translated_by.Add (wxT ("Rov (若文)"));
        translated_by.Add (wxT ("刘汉源"));
+       translated_by.Add (wxT ("poppinzhang"));
        add_section (_("Translated by"), translated_by);
 
        wxArrayString patrons;
-       patrons.Add ("Luproduction");
        patrons.Add ("Lightbender Post");
-       patrons.Add ("Drop-out Cinema");
-       patrons.Add ("Pilotkino LLC");
        add_section (_("Patrons"), patrons);
 
        wxArrayString subscribers;
@@ -230,6 +231,8 @@ AboutDialog::AboutDialog (wxWindow* parent)
        tested_by.Add (wxT ("Andreas Weiss"));
        tested_by.Add (wxT ("Paul Willmott"));
        tested_by.Add (wxT ("Wolfgang Woehl"));
+       tested_by.Add (wxT ("Benno Zwanenburg"));
+       tested_by.Add (wxT ("Дима Агатов"));
        add_section (_("Tested by"), tested_by);
 
        sizer->Add (_notebook, wxSizerFlags().Centre().Border(wxALL, 16));
@@ -252,7 +255,7 @@ void
 AboutDialog::add_section (wxString name, wxArrayString credits)
 {
        static auto first = true;
-       int const N = 4;
+       int const N = 3;
 
        auto panel = new wxScrolledWindow (_notebook);
        panel->SetMaxSize (wxSize (-1, 380));
@@ -260,22 +263,23 @@ AboutDialog::add_section (wxString name, wxArrayString credits)
        panel->SetScrollRate (0, 32);
        auto overall_sizer = new wxBoxSizer (wxHORIZONTAL);
 
-       vector<wxSizer*> sizers;
-
-       for (int i = 0; i < N; ++i) {
-               sizers.push_back (new wxBoxSizer (wxVERTICAL));
-               overall_sizer->Add (sizers.back (), 1, wxEXPAND | wxALL, 6);
-       }
-
+       vector<wxString> strings(N);
        int c = 0;
        for (size_t i = 0; i < credits.Count(); ++i) {
-               add_label_to_sizer (sizers[c], panel, credits[i], false);
+               strings[c] += credits[i] + wxT("\n");
                ++c;
                if (c == N) {
                        c = 0;
                }
        }
 
+       for (int i = 0; i < N; ++i) {
+               auto label = new wxStaticText(panel, wxID_ANY, strings[i]);
+               auto sizer = new wxBoxSizer(wxVERTICAL);
+               sizer->Add(label);
+               overall_sizer->Add(sizer, 1, wxEXPAND | wxALL, 6);
+       }
+
        panel->SetSizerAndFit (overall_sizer);
        _notebook->AddPage (panel, name, first);
        first = false;