Be a little more careful to handle exceptions from boost::filesystem::file_size
[dcpomatic.git] / src / wx / config_dialog.cc
index de2c11517f10eed31bf2585c63bd75cf45f33e2a..e0effec53eafb90a25d2ff2e966f9d92f90406d7 100644 (file)
@@ -36,7 +36,7 @@ using std::make_shared;
 using boost::bind;
 using boost::optional;
 using std::shared_ptr;
-using boost::function;
+using std::function;
 #if BOOST_VERSION >= 106100
 using namespace boost::placeholders;
 #endif
@@ -477,7 +477,7 @@ void
 CertificateChainEditor::export_chain ()
 {
        auto d = new wxFileDialog (
-               this, _("Select Chain File"), wxEmptyString, _("certificate_chain.pem"), wxT("PEM files (*.pem)|*.pem"),
+               this, _("Select Chain File"), wxEmptyString, wxT("certificate_chain.pem"), wxT("PEM files (*.pem)|*.pem"),
                wxFD_SAVE | wxFD_OVERWRITE_PROMPT
                );
 
@@ -633,7 +633,7 @@ CertificateChainEditor::import_private_key ()
                        chain->set_key (dcp::file_to_string (p));
                        _set (chain);
                        update_private_key ();
-               } catch (dcp::MiscError& e) {
+               } catch (std::exception& e) {
                        error_dialog (this, _("Could not read certificate file."), std_to_wx(e.what()));
                }
        }
@@ -652,7 +652,7 @@ CertificateChainEditor::export_private_key ()
        }
 
        auto d = new wxFileDialog (
-               this, _("Select Key File"), wxEmptyString, _("private_key.pem"), wxT ("PEM files (*.pem)|*.pem"),
+               this, _("Select Key File"), wxEmptyString, wxT("private_key.pem"), wxT("PEM files (*.pem)|*.pem"),
                wxFD_SAVE | wxFD_OVERWRITE_PROMPT
                );
 
@@ -690,12 +690,12 @@ KeysPage::setup ()
        {
                auto m = new StaticText (_panel, _("Decrypting KDMs"));
                m->SetFont (subheading_font);
-               sizer->Add (m, 0, wxALL, _border);
+               sizer->Add (m, 0, wxALL | wxEXPAND, _border);
        }
 
        auto buttons = new wxBoxSizer (wxVERTICAL);
 
-       wxButton* export_decryption_certificate = new Button (_panel, _("Export KDM decryption certificate..."));
+       auto export_decryption_certificate = new Button (_panel, _("Export KDM decryption leaf certificate..."));
        buttons->Add (export_decryption_certificate, 0, wxBOTTOM, DCPOMATIC_BUTTON_STACK_GAP);
        auto export_settings = new Button (_panel, _("Export all KDM decryption settings..."));
        buttons->Add (export_settings, 0, wxBOTTOM, DCPOMATIC_BUTTON_STACK_GAP);
@@ -714,7 +714,7 @@ KeysPage::setup ()
        {
                auto m = new StaticText (_panel, _("Signing DCPs and KDMs"));
                m->SetFont (subheading_font);
-               sizer->Add (m, 0, wxALL, _border);
+               sizer->Add (m, 0, wxALL | wxEXPAND, _border);
        }
 
        auto signing_advanced = new Button (_panel, _("Advanced..."));
@@ -838,8 +838,18 @@ KeysPage::nag_alter_decryption_chain ()
 void
 KeysPage::export_decryption_certificate ()
 {
-       wxFileDialog* d = new wxFileDialog (
-               _panel, _("Select Certificate File"), wxEmptyString, _("dcpomatic_kdm_decryption_cert.pem"), wxT ("PEM files (*.pem)|*.pem"),
+       auto config = Config::instance();
+       wxString default_name = "dcpomatic";
+       if (!config->dcp_creator().empty()) {
+               default_name += "_" + std_to_wx(careful_string_filter(config->dcp_creator()));
+       }
+       if (!config->dcp_issuer().empty()) {
+               default_name += "_" + std_to_wx(careful_string_filter(config->dcp_issuer()));
+       }
+       default_name += wxT("_kdm_decryption_cert.pem");
+
+       auto d = new wxFileDialog (
+               _panel, _("Select Certificate File"), wxEmptyString, default_name, wxT("PEM files (*.pem)|*.pem"),
                wxFD_SAVE | wxFD_OVERWRITE_PROMPT
                );
 
@@ -1071,7 +1081,7 @@ LocationsPage::GetName () const
 wxBitmap
 LocationsPage::GetLargeIcon () const
 {
-       return wxBitmap ("locations", wxBITMAP_TYPE_PNG_RESOURCE);
+       return wxBitmap(bitmap_path("locations"), wxBITMAP_TYPE_PNG);
 }
 #endif