From 1eb7e979b0849ffc256ae0b164141f3327671001 Mon Sep 17 00:00:00 2001 From: sunsets <845944018@qq.com> Date: Fri, 23 Feb 2024 13:54:47 +0800 Subject: [PATCH] Update PrintHostDialogs.cpp --- src/slic3r/GUI/PrintHostDialogs.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 2a70ada..d3093c2 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -145,7 +145,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo }; //B53 - auto* btn_ok = add_button(wxID_OK, true, _L("Upload")); + auto* btn_ok = add_button(wxID_OK, false, _L("Upload")); btn_ok->Bind(wxEVT_BUTTON, [this, validate_path, checkbox_sizer](wxCommandEvent &) { if (validate_path(txt_filename->GetValue())) { std::vector checkbox_states; @@ -163,6 +163,18 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo }); txt_filename->SetFocus(); + //B53 + Bind(wxEVT_CHECKBOX, [btn_ok, checkbox_sizer, this](wxCommandEvent &event) { + bool any_checkbox_selected = false; + for (int i = 0; i < checkbox_sizer->GetItemCount(); i++) { + wxCheckBox *checkbox = dynamic_cast(checkbox_sizer->GetItem(i)->GetWindow()); + if (checkbox && checkbox->GetValue()) { + any_checkbox_selected = true; + break; + } + } + btn_ok->Enable(any_checkbox_selected); + }); if (post_actions.has(PrintHostPostUploadAction::QueuePrint)) { auto* btn_print = add_button(wxID_ADD, false, _L("Upload to Queue")); btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) { @@ -191,6 +203,19 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo EndDialog(wxID_OK); } }); + //B53 + Bind(wxEVT_CHECKBOX, [btn_ok,btn_print, checkbox_sizer, this](wxCommandEvent &event) { + bool any_checkbox_selected = false; + for (int i = 0; i < checkbox_sizer->GetItemCount(); i++) { + wxCheckBox *checkbox = dynamic_cast(checkbox_sizer->GetItem(i)->GetWindow()); + if (checkbox && checkbox->GetValue()) { + any_checkbox_selected = true; + break; + } + } + btn_print->Enable(any_checkbox_selected); + btn_ok->Enable(any_checkbox_selected); + }); } if (post_actions.has(PrintHostPostUploadAction::StartSimulation)) {