diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/internet.cc | 1 | ||||
| -rw-r--r-- | src/wx/dolby_certificate_dialog.cc | 10 | ||||
| -rw-r--r-- | src/wx/doremi_certificate_dialog.cc | 14 | ||||
| -rw-r--r-- | src/wx/doremi_certificate_dialog.h | 1 | ||||
| -rw-r--r-- | src/wx/kdm_dialog.cc | 10 | ||||
| -rw-r--r-- | src/wx/screen_dialog.cc | 2 |
6 files changed, 27 insertions, 11 deletions
diff --git a/src/lib/internet.cc b/src/lib/internet.cc index 16fd67244..c3f9dce65 100644 --- a/src/lib/internet.cc +++ b/src/lib/internet.cc @@ -55,6 +55,7 @@ get_from_zip_url (string url, string file, function<void (boost::filesystem::pat FILE* f = temp_zip.open ("wb"); curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, get_from_zip_url_data); curl_easy_setopt (curl, CURLOPT_WRITEDATA, f); + curl_easy_setopt (curl, CURLOPT_FTP_USE_EPSV, 0); CURLcode const cr = curl_easy_perform (curl); diff --git a/src/wx/dolby_certificate_dialog.cc b/src/wx/dolby_certificate_dialog.cc index 9960c16c9..e5bb18962 100644 --- a/src/wx/dolby_certificate_dialog.cc +++ b/src/wx/dolby_certificate_dialog.cc @@ -135,7 +135,7 @@ DolbyCertificateDialog::download () string const zip = string_client_data (_serial->GetClientObject (_serial->GetSelection ())); string const file = String::compose ( - "%1/%2/%3", + "ftp://dolbyrootcertificates:houro61l@ftp.dolby.co.uk/SHA256/%1/%2/%3", wx_to_std (_country->GetStringSelection()), wx_to_std (_cinema->GetStringSelection()), zip @@ -149,11 +149,11 @@ DolbyCertificateDialog::download () return; } string const cert = b[0] + "_" + b[1] + ".pem.crt"; - + optional<string> error = get_from_zip_url (file, cert, _load); if (error) { - error_dialog (this, std_to_wx (error.get ())); + _message->SetLabel (std_to_wx (error.get ())); + } else { + _message->SetLabel (_("Certificate downloaded")); } - - _message->SetLabel (wxT ("")); } diff --git a/src/wx/doremi_certificate_dialog.cc b/src/wx/doremi_certificate_dialog.cc index 8509c97d1..b0840a83f 100644 --- a/src/wx/doremi_certificate_dialog.cc +++ b/src/wx/doremi_certificate_dialog.cc @@ -33,7 +33,9 @@ DoremiCertificateDialog::DoremiCertificateDialog (wxWindow* parent, function<voi : DownloadCertificateDialog (parent, load) { add (_("Server serial number"), true); - _serial = add (new wxTextCtrl (this, wxID_ANY)); + _serial = add (new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, wxSize (300, -1))); + + _serial->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&DoremiCertificateDialog::set_sensitivity, this)); add_common_widgets (); } @@ -48,6 +50,7 @@ DoremiCertificateDialog::download () } _message->SetLabel (_("Downloading certificate")); + run_gui_loop (); optional<string> error = get_from_zip_url ( String::compose ( @@ -61,6 +64,13 @@ DoremiCertificateDialog::download () if (error) { error_dialog (this, std_to_wx (error.get ())); } else { - _message->SetLabel (wxT ("")); + _message->SetLabel (_("Certificate downloaded")); } } + +void +DoremiCertificateDialog::set_sensitivity () +{ + _download->Enable (!_serial->IsEmpty ()); +} + diff --git a/src/wx/doremi_certificate_dialog.h b/src/wx/doremi_certificate_dialog.h index c2cb15dfd..281184726 100644 --- a/src/wx/doremi_certificate_dialog.h +++ b/src/wx/doremi_certificate_dialog.h @@ -26,6 +26,7 @@ public: private: void download (); + void set_sensitivity (); wxTextCtrl* _serial; }; diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index cc643c8ef..0336d0cb7 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Carl Hetherington <cth@carlh.net> + Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -354,9 +354,11 @@ KDMDialog::remove_screen_clicked () pair<wxTreeItemId, shared_ptr<Screen> > s = selected_screens().front(); map<wxTreeItemId, shared_ptr<Cinema> >::iterator i = _cinemas.begin (); - list<shared_ptr<Screen> > sc = i->second->screens (); - while (i != _cinemas.end() && find (sc.begin(), sc.end(), s.second) == sc.end()) { - ++i; + while (i != _cinemas.end ()) { + list<shared_ptr<Screen> > sc = i->second->screens (); + if (find (sc.begin(), sc.end(), s.second) != sc.end ()) { + break; + } } if (i == _cinemas.end()) { diff --git a/src/wx/screen_dialog.cc b/src/wx/screen_dialog.cc index 232afa33c..b702ae0ad 100644 --- a/src/wx/screen_dialog.cc +++ b/src/wx/screen_dialog.cc @@ -120,6 +120,8 @@ ScreenDialog::download_certificate () d->ShowModal (); d->Destroy (); } + + setup_sensitivity (); } void |
