Differentiate requested and actual crop.
[dcpomatic.git] / src / wx / gdc_certificate_panel.cc
index b0bb31674458fc7711a7c6bf634660f1ba73dcb9..f7f86895df931eaaf307d0277a2b1c2914d74465 100644 (file)
 
 using std::string;
 using boost::optional;
+using boost::bind;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 
 GDCCertificatePanel::GDCCertificatePanel (DownloadCertificateDialog* dialog)
-       : DownloadCertificatePanel (dialog)
+       : CredentialsDownloadCertificatePanel (
+                       dialog,
+                       bind(&Config::gdc_username, Config::instance()),
+                       bind(&Config::set_gdc_username, Config::instance(), _1),
+                       bind(&Config::unset_gdc_username, Config::instance()),
+                       bind(&Config::gdc_password, Config::instance()),
+                       bind(&Config::set_gdc_password, Config::instance(), _1),
+                       bind(&Config::unset_gdc_password, Config::instance())
+                       )
 {
 
 }
@@ -37,21 +49,19 @@ GDCCertificatePanel::GDCCertificatePanel (DownloadCertificateDialog* dialog)
 void
 GDCCertificatePanel::do_download ()
 {
-       Config* config = Config::instance ();
-       if (!config->gdc_username() || !config->gdc_password()) {
-               _dialog->message()->SetLabel(wxT(""));
-               error_dialog (this, _("No GDC username/password configured.  Add your account details to the Accounts page in Preferences."));
-               return;
+       string serial = wx_to_std (_serial->GetValue());
+       if (!serial.empty() && serial[0] == 'A') {
+               /* We're adding the A ourselves */
+               serial = serial.substr(1);
        }
-
        string const url = String::compose(
                "ftp://%1:%2@ftp.gdc-tech.com/SHA256/A%3.crt.pem",
                Config::instance()->gdc_username().get(),
                Config::instance()->gdc_password().get(),
-               wx_to_std(_serial->GetValue())
+               serial
                );
 
-       optional<string> error = get_from_url (url, true, false, boost::bind (&DownloadCertificatePanel::load, this, _1));
+       optional<string> error = get_from_url (url, true, false, boost::bind(&DownloadCertificatePanel::load_certificate, this, _1));
 
        if (error) {
                _dialog->message()->SetLabel(wxT(""));