diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-05-01 23:23:52 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-06-03 22:46:26 +0200 |
| commit | 9c9e2e1eba91d074d5477549a5230555c6edcedf (patch) | |
| tree | 3398fb47ea8fd3db14f4f3647f53f73441193dd0 /src/wx | |
| parent | cd2dffcd903a2a1d9f2b452bdd3cfec45cebe614 (diff) | |
Support specification of maximum simultaneous connections for upload.
Diffstat (limited to 'src/wx')
| -rw-r--r-- | src/wx/upload_destination_dialog.cc | 30 | ||||
| -rw-r--r-- | src/wx/upload_destination_dialog.h | 4 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/wx/upload_destination_dialog.cc b/src/wx/upload_destination_dialog.cc index d4da24bb0..64509f4da 100644 --- a/src/wx/upload_destination_dialog.cc +++ b/src/wx/upload_destination_dialog.cc @@ -21,6 +21,7 @@ #include "check_box.h" #include "dcpomatic_choice.h" +#include "dcpomatic_spin_ctrl.h" #include "password_entry.h" #include "upload_destination_dialog.h" #include "wx_util.h" @@ -30,6 +31,7 @@ using std::shared_ptr; using std::string; using std::vector; +using boost::optional; UploadDestinationDialog::UploadDestinationDialog(wxWindow* parent) @@ -41,6 +43,9 @@ UploadDestinationDialog::UploadDestinationDialog(wxWindow* parent) _protocol = add(new Choice(this)); _passive = add(new CheckBox(this, _("Passive"))); add_spacer(); + _limit_connections = add(new CheckBox(this, _("Limit connections"))); + _maximum_connections = add(new SpinCtrl(this, DCPOMATIC_SPIN_CTRL_WIDTH), 0); + _maximum_connections->SetRange(1, 100); add(_("Host"), true); _host = add(new wxTextCtrl(this, wxID_ANY)); add(_("Path"), true); @@ -56,6 +61,7 @@ UploadDestinationDialog::UploadDestinationDialog(wxWindow* parent) _protocol->add_entry(_("FTPS"), file_transfer_protocol_to_string(FileTransferProtocol::FTPS)); _protocol->bind(&UploadDestinationDialog::protocol_changed, this); + _limit_connections->bind(&UploadDestinationDialog::limit_connections_changed, this); layout(); @@ -63,6 +69,9 @@ UploadDestinationDialog::UploadDestinationDialog(wxWindow* parent) _protocol->set(0); protocol_changed(); + _limit_connections->set(false); + _maximum_connections->set(5); + limit_connections_changed(); } @@ -76,19 +85,34 @@ UploadDestinationDialog::protocol_changed() void +UploadDestinationDialog::limit_connections_changed() +{ + _maximum_connections->Enable(_limit_connections->get()); +} + + +void UploadDestinationDialog::set(UploadDestination const& destination) { checked_set(_name, destination.name); checked_set(_protocol, static_cast<int>(destination.protocol)); checked_set(_passive, destination.passive_ftp); + checked_set(_limit_connections, static_cast<bool>(destination.maximum_connections)); + if (_limit_connections->get()) { + checked_set(_maximum_connections, *destination.maximum_connections); + } else { + checked_set(_maximum_connections, 5); + } checked_set(_host, destination.host); checked_set(_path, destination.path); checked_set(_user, destination.user); checked_set(_password, destination.password); protocol_changed(); + limit_connections_changed(); } + vector<UploadDestination> UploadDestinationDialog::get () const { @@ -97,11 +121,17 @@ UploadDestinationDialog::get () const protocol = file_transfer_protocol_from_string(*protocol_name); } + optional<int> max; + if (_limit_connections->get()) { + max = _maximum_connections->get(); + } + return { UploadDestination( wx_to_std(_name->GetValue()), protocol, _passive->get(), + max, wx_to_std(_host->GetValue()), wx_to_std(_path->GetValue()), wx_to_std(_user->GetValue()), diff --git a/src/wx/upload_destination_dialog.h b/src/wx/upload_destination_dialog.h index 62abafe0f..1ebe13552 100644 --- a/src/wx/upload_destination_dialog.h +++ b/src/wx/upload_destination_dialog.h @@ -27,6 +27,7 @@ class CheckBox; class Choice; class PasswordEntry; +class SpinCtrl; class wxTextCtrl; @@ -40,10 +41,13 @@ public: private: void protocol_changed(); + void limit_connections_changed(); wxTextCtrl* _name; Choice* _protocol; CheckBox* _passive; + CheckBox* _limit_connections; + SpinCtrl* _maximum_connections; wxTextCtrl* _host; wxTextCtrl* _path; wxTextCtrl* _user; |
