From 8c7ad603cf0a534abe1a920b70b0daa095257d3a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 14 May 2020 20:14:52 +0200 Subject: Don't say 'certificate downloaded' if it failed during the read part. --- src/lib/internet.cc | 12 ++++++------ src/lib/internet.h | 6 +++--- src/wx/christie_certificate_panel.cc | 2 +- src/wx/download_certificate_panel.cc | 9 ++++++--- src/wx/download_certificate_panel.h | 2 +- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/lib/internet.cc b/src/lib/internet.cc index b993117bb..943363d1a 100644 --- a/src/lib/internet.cc +++ b/src/lib/internet.cc @@ -119,24 +119,25 @@ get_from_url (string url, bool pasv, bool skip_pasv_ip, ScopedTemporary& temp) return optional(); } + optional -get_from_url (string url, bool pasv, bool skip_pasv_ip, function load) +get_from_url (string url, bool pasv, bool skip_pasv_ip, function (boost::filesystem::path)> load) { ScopedTemporary temp; optional e = get_from_url (url, pasv, skip_pasv_ip, temp); if (e) { return e; } - load (temp.file()); - return optional(); + return load (temp.file()); } + /** @param url URL of ZIP file. * @param file Filename within ZIP file. * @param load Function passed a (temporary) filesystem path of the unpacked file. */ optional -get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, function load) +get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, function (boost::filesystem::path)> load) { /* Download the ZIP file to temp_zip */ ScopedTemporary temp_zip; @@ -193,6 +194,5 @@ get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, functio zip_close (zip); temp_cert.close (); - load (temp_cert.file ()); - return optional (); + return load (temp_cert.file()); } diff --git a/src/lib/internet.h b/src/lib/internet.h index 5f9a25e3b..8aa7264c6 100644 --- a/src/lib/internet.h +++ b/src/lib/internet.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2019 Carl Hetherington + Copyright (C) 2014-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -25,6 +25,6 @@ class ScopedTemporary; boost::optional get_from_url (std::string url, bool pasv, bool skip_pasv_ip, ScopedTemporary& temp); -boost::optional get_from_url (std::string url, bool pasv, bool skip_pasv_ip, boost::function load); -boost::optional get_from_zip_url (std::string url, std::string file, bool pasv, bool skip_pasv_ip, boost::function load); +boost::optional get_from_url (std::string url, bool pasv, bool skip_pasv_ip, boost::function (boost::filesystem::path)> load); +boost::optional get_from_zip_url (std::string url, std::string file, bool pasv, bool skip_pasv_ip, boost::function (boost::filesystem::path)> load); std::list ls_url (std::string url); diff --git a/src/wx/christie_certificate_panel.cc b/src/wx/christie_certificate_panel.cc index 7db3fef25..0795b09e9 100644 --- a/src/wx/christie_certificate_panel.cc +++ b/src/wx/christie_certificate_panel.cc @@ -76,7 +76,7 @@ ChristieCertificatePanel::do_download () _dialog->message()->SetLabel(wxT("")); error_dialog (this, std_to_wx(*all_errors)); } else { - _dialog->message()->SetLabel (_("Certificate downloaded")); + _dialog->message()->SetLabel (_("Certificate dowloaded")); _dialog->setup_sensitivity (); } } diff --git a/src/wx/download_certificate_panel.cc b/src/wx/download_certificate_panel.cc index 2f3b435ef..461c68966 100644 --- a/src/wx/download_certificate_panel.cc +++ b/src/wx/download_certificate_panel.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2018 Carl Hetherington + Copyright (C) 2014-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -22,10 +22,12 @@ #include "download_certificate_panel.h" #include "download_certificate_dialog.h" #include "lib/signal_manager.h" +#include "lib/compose.hpp" #include #include #include +using std::string; using boost::function; using boost::optional; @@ -51,14 +53,15 @@ DownloadCertificatePanel::DownloadCertificatePanel (DownloadCertificateDialog* d _overall_sizer->SetSizeHints (this); } -void +optional DownloadCertificatePanel::load (boost::filesystem::path file) { try { _certificate = dcp::Certificate (dcp::file_to_string (file)); } catch (dcp::MiscError& e) { - error_dialog (this, _("Could not read certificate file."), std_to_wx(e.what())); + return String::compose(wx_to_std(_("Could not read certificate file (%1)")), e.what()); } + return optional(); } optional diff --git a/src/wx/download_certificate_panel.h b/src/wx/download_certificate_panel.h index d1f0bf4de..f51bcde13 100644 --- a/src/wx/download_certificate_panel.h +++ b/src/wx/download_certificate_panel.h @@ -37,7 +37,7 @@ public: virtual bool ready_to_download () const; void download (); - void load (boost::filesystem::path); + boost::optional load (boost::filesystem::path); boost::optional certificate () const; protected: -- cgit v1.2.3