diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-05-14 20:14:52 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-05-14 20:45:24 +0200 |
| commit | dd0f6069a536f414c5b37c786bb36dfc7fdf3d20 (patch) | |
| tree | 86c23e1e09d8f76972f59d38daaa11483b6fa119 | |
| parent | a0bba66b8a34d594a62750bd595e5cdc561abdf4 (diff) | |
Don't say 'certificate downloaded' if it failed during the read part.
Backported from 8c7ad603cf0a534abe1a920b70b0daa095257d3a in v2.15.x
| -rw-r--r-- | src/lib/internet.cc | 12 | ||||
| -rw-r--r-- | src/lib/internet.h | 6 | ||||
| -rw-r--r-- | src/wx/download_certificate_panel.cc | 9 | ||||
| -rw-r--r-- | src/wx/download_certificate_panel.h | 2 |
4 files changed, 16 insertions, 13 deletions
diff --git a/src/lib/internet.cc b/src/lib/internet.cc index e0af49b66..8721c1b73 100644 --- a/src/lib/internet.cc +++ b/src/lib/internet.cc @@ -79,24 +79,25 @@ get_from_url (string url, bool pasv, bool skip_pasv_ip, ScopedTemporary& temp) return optional<string>(); } + optional<string> -get_from_url (string url, bool pasv, bool skip_pasv_ip, function<void (boost::filesystem::path)> load) +get_from_url (string url, bool pasv, bool skip_pasv_ip, function<optional<string> (boost::filesystem::path)> load) { ScopedTemporary temp; optional<string> e = get_from_url (url, pasv, skip_pasv_ip, temp); if (e) { return e; } - load (temp.file()); - return optional<string>(); + 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<string> -get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, function<void (boost::filesystem::path)> load) +get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, function<optional<string> (boost::filesystem::path)> load) { /* Download the ZIP file to temp_zip */ ScopedTemporary temp_zip; @@ -153,6 +154,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<string> (); + return load (temp_cert.file()); } diff --git a/src/lib/internet.h b/src/lib/internet.h index 125533b5d..da0bfc005 100644 --- a/src/lib/internet.h +++ b/src/lib/internet.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2019 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -25,5 +25,5 @@ class ScopedTemporary; boost::optional<std::string> get_from_url (std::string url, bool pasv, bool skip_pasv_ip, ScopedTemporary& temp); -boost::optional<std::string> get_from_url (std::string url, bool pasv, bool skip_pasv_ip, boost::function<void (boost::filesystem::path)> load); -boost::optional<std::string> get_from_zip_url (std::string url, std::string file, bool pasv, bool skip_pasv_ip, boost::function<void (boost::filesystem::path)> load); +boost::optional<std::string> get_from_url (std::string url, bool pasv, bool skip_pasv_ip, boost::function<boost::optional<std::string> (boost::filesystem::path)> load); +boost::optional<std::string> get_from_zip_url (std::string url, std::string file, bool pasv, bool skip_pasv_ip, boost::function<boost::optional<std::string> (boost::filesystem::path)> load); 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 <cth@carlh.net> + Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net> 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 <dcp/util.h> #include <dcp/exceptions.h> #include <boost/bind.hpp> +using std::string; using boost::function; using boost::optional; @@ -51,14 +53,15 @@ DownloadCertificatePanel::DownloadCertificatePanel (DownloadCertificateDialog* d _overall_sizer->SetSizeHints (this); } -void +optional<string> 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<string>(); } optional<dcp::Certificate> diff --git a/src/wx/download_certificate_panel.h b/src/wx/download_certificate_panel.h index 55594c74c..dee76c435 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<std::string> load (boost::filesystem::path); boost::optional<dcp::Certificate> certificate () const; protected: |
