Split subtitles at reel boundaries (#1918).
[dcpomatic.git] / src / wx / screen_dialog.cc
index e8361dcd83581d751f2200771cfa202dac7f2eac..030098920b73e648955b05efb196a6a6ecd62ce5 100644 (file)
 #include "static_text.h"
 #include "download_certificate_dialog.h"
 #include "table_dialog.h"
+#include "dcpomatic_button.h"
 #include "lib/compose.hpp"
 #include "lib/util.h"
+#include "lib/warnings.h"
 #include <dcp/exceptions.h>
 #include <dcp/certificate_chain.h>
+DCPOMATIC_DISABLE_WARNINGS
 #include <wx/filepicker.h>
 #include <wx/validate.h>
+DCPOMATIC_ENABLE_WARNINGS
 #include <iostream>
 
 using std::string;
@@ -37,6 +41,9 @@ using std::cout;
 using std::vector;
 using boost::optional;
 using boost::bind;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 
 static string
 column (TrustedDevice d)
@@ -52,7 +59,7 @@ public:
        {
                add (_("Thumbprint"), true);
                _thumbprint = add (new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(300, -1)));
-               _file = add (new wxButton(this, wxID_ANY, _("Load certificate...")));
+               _file = add (new Button(this, _("Load certificate...")));
 
                layout ();
 
@@ -62,12 +69,13 @@ public:
        void load_certificate ()
        {
                wxFileDialog* d = new wxFileDialog (this, _("Trusted Device certificate"));
-               d->ShowModal ();
-               try {
-                       _certificate = dcp::Certificate(dcp::file_to_string(wx_to_std(d->GetPath())));
-                       _thumbprint->SetValue (std_to_wx(_certificate->thumbprint()));
-               } catch (dcp::MiscError& e) {
-                       error_dialog (this, wxString::Format(_("Could not load certficate (%s)"), std_to_wx(e.what())));
+               if (d->ShowModal() == wxID_OK) {
+                       try {
+                               _certificate = dcp::Certificate(dcp::file_to_string(wx_to_std(d->GetPath())));
+                               _thumbprint->SetValue (std_to_wx(_certificate->thumbprint()));
+                       } catch (dcp::MiscError& e) {
+                               error_dialog (this, wxString::Format(_("Could not load certficate (%s)"), std_to_wx(e.what())));
+                       }
                }
        }
 
@@ -130,8 +138,8 @@ ScreenDialog::ScreenDialog (
        _recipient_thumbprint = new StaticText (this, wxT (""), wxDefaultPosition, size);
        _recipient_thumbprint->SetFont (font);
        set_recipient (recipient);
-       _get_recipient_from_file = new wxButton (this, wxID_ANY, _("Get from file..."));
-       _download_recipient = new wxButton (this, wxID_ANY, _("Download..."));
+       _get_recipient_from_file = new Button (this, _("Get from file..."));
+       _download_recipient = new Button (this, _("Download..."));
        s->Add (_recipient_thumbprint, 1, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_X_GAP);
        s->Add (_get_recipient_from_file, 0, wxLEFT | wxRIGHT | wxEXPAND, DCPOMATIC_SIZER_X_GAP);
        s->Add (_download_recipient, 0, wxLEFT | wxRIGHT | wxEXPAND, DCPOMATIC_SIZER_X_GAP);
@@ -141,8 +149,8 @@ ScreenDialog::ScreenDialog (
        add_label_to_sizer (_sizer, this, _("Other trusted devices"), true, wxGBPosition (r, 0));
        ++r;
 
-       vector<string> columns;
-       columns.push_back (wx_to_std (_("Thumbprint")));
+       vector<EditableListColumn> columns;
+       columns.push_back (EditableListColumn(_("Thumbprint")));
        _trusted_device_list = new EditableList<TrustedDevice, TrustedDeviceDialog> (
                this,
                columns,