diff --git a/src/slic3r/GUI/BindDialog.cpp b/src/slic3r/GUI/BindDialog.cpp index 630ced8e91..3820a2c47d 100644 --- a/src/slic3r/GUI/BindDialog.cpp +++ b/src/slic3r/GUI/BindDialog.cpp @@ -15,7 +15,7 @@ namespace Slic3r { namespace GUI { - BindMachineDilaog::BindMachineDilaog(Plater *plater /*= nullptr*/) + BindMachineDialog::BindMachineDialog(Plater *plater /*= nullptr*/) : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("Log in printer"), wxDefaultPosition, wxDefaultSize, wxCAPTION) { std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str(); @@ -172,23 +172,25 @@ namespace GUI { Fit(); Centre(wxBOTH); - Bind(wxEVT_SHOW, &BindMachineDilaog::on_show, this); + Bind(wxEVT_SHOW, &BindMachineDialog::on_show, this); - m_button_bind->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDilaog::on_bind_printer), NULL, this); - m_button_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDilaog::on_cancel), NULL, this); - this->Connect(EVT_BIND_MACHINE_FAIL, wxCommandEventHandler(BindMachineDilaog::on_bind_fail), NULL, this); - this->Connect(EVT_BIND_MACHINE_SUCCESS, wxCommandEventHandler(BindMachineDilaog::on_bind_success), NULL, this); - this->Connect(EVT_BIND_UPDATE_MESSAGE, wxCommandEventHandler(BindMachineDilaog::on_update_message), NULL, this); + Bind(wxEVT_CLOSE_WINDOW, &BindMachineDialog::on_close, this); + + m_button_bind->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_bind_printer), NULL, this); + m_button_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_cancel), NULL, this); + this->Connect(EVT_BIND_MACHINE_FAIL, wxCommandEventHandler(BindMachineDialog::on_bind_fail), NULL, this); + this->Connect(EVT_BIND_MACHINE_SUCCESS, wxCommandEventHandler(BindMachineDialog::on_bind_success), NULL, this); + this->Connect(EVT_BIND_UPDATE_MESSAGE, wxCommandEventHandler(BindMachineDialog::on_update_message), NULL, this); m_simplebook->SetSelection(1); } - BindMachineDilaog::~BindMachineDilaog() + BindMachineDialog::~BindMachineDialog() { - m_button_bind->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDilaog::on_bind_printer), NULL, this); - m_button_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDilaog::on_cancel), NULL, this); - this->Disconnect(EVT_BIND_MACHINE_FAIL, wxCommandEventHandler(BindMachineDilaog::on_bind_fail), NULL, this); - this->Disconnect(EVT_BIND_MACHINE_SUCCESS, wxCommandEventHandler(BindMachineDilaog::on_bind_success), NULL, this); - this->Disconnect(EVT_BIND_UPDATE_MESSAGE, wxCommandEventHandler(BindMachineDilaog::on_update_message), NULL, this); + m_button_bind->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_bind_printer), NULL, this); + m_button_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_cancel), NULL, this); + this->Disconnect(EVT_BIND_MACHINE_FAIL, wxCommandEventHandler(BindMachineDialog::on_bind_fail), NULL, this); + this->Disconnect(EVT_BIND_MACHINE_SUCCESS, wxCommandEventHandler(BindMachineDialog::on_bind_success), NULL, this); + this->Disconnect(EVT_BIND_UPDATE_MESSAGE, wxCommandEventHandler(BindMachineDialog::on_update_message), NULL, this); } //static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) @@ -205,30 +207,43 @@ namespace GUI { //} - void BindMachineDilaog::on_cancel(wxCommandEvent &event) + void BindMachineDialog::on_cancel(wxCommandEvent &event) { - EndModal(wxID_CANCEL); + if (m_bind_job) { + m_bind_job->cancel(); + m_bind_job->join(); + } + EndModal(wxID_CANCEL); } - void BindMachineDilaog::on_bind_fail(wxCommandEvent &event) + void BindMachineDialog::on_close(wxCloseEvent &event) + { + if (m_bind_job) { + m_bind_job->cancel(); + m_bind_job->join(); + } + event.Skip(); + } + + void BindMachineDialog::on_bind_fail(wxCommandEvent &event) { //m_status_text->SetLabel(_L("Would you like to log in this printer with current account?")); m_simplebook->SetSelection(1); } - void BindMachineDilaog::on_update_message(wxCommandEvent &event) + void BindMachineDialog::on_update_message(wxCommandEvent &event) { m_status_text->SetLabelText(event.GetString()); } - void BindMachineDilaog::on_bind_success(wxCommandEvent &event) + void BindMachineDialog::on_bind_success(wxCommandEvent &event) { EndModal(wxID_OK); MessageDialog msg_wingow(nullptr, _L("Log in successful."), "", wxAPPLY | wxOK); if (msg_wingow.ShowModal() == wxOK) { return; } } - void BindMachineDilaog::on_bind_printer(wxCommandEvent &event) + void BindMachineDialog::on_bind_printer(wxCommandEvent &event) { //check isset info if (m_machine_info == nullptr || m_machine_info == NULL) return; @@ -242,13 +257,13 @@ namespace GUI { m_bind_job->start(); } -void BindMachineDilaog::on_dpi_changed(const wxRect &suggested_rect) +void BindMachineDialog::on_dpi_changed(const wxRect &suggested_rect) { m_button_bind->SetMinSize(BIND_DIALOG_BUTTON_SIZE); m_button_cancel->SetMinSize(BIND_DIALOG_BUTTON_SIZE); } -void BindMachineDilaog::on_show(wxShowEvent &event) +void BindMachineDialog::on_show(wxShowEvent &event) { //m_printer_name->SetLabelText(m_machine_info->get_printer_type_string()); m_printer_name->SetLabelText(from_u8(m_machine_info->dev_name)); @@ -256,7 +271,7 @@ void BindMachineDilaog::on_show(wxShowEvent &event) } -UnBindMachineDilaog::UnBindMachineDilaog(Plater *plater /*= nullptr*/) +UnBindMachineDialog::UnBindMachineDialog(Plater *plater /*= nullptr*/) : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("Log out printer"), wxDefaultPosition, wxDefaultSize, wxCAPTION) { std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str(); @@ -402,24 +417,24 @@ UnBindMachineDilaog::UnBindMachineDilaog(Plater *plater /*= nullptr*/) Fit(); Centre(wxBOTH); - Bind(wxEVT_SHOW, &UnBindMachineDilaog::on_show, this); - m_button_unbind->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDilaog::on_unbind_printer), NULL, this); - m_button_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDilaog::on_cancel), NULL, this); + Bind(wxEVT_SHOW, &UnBindMachineDialog::on_show, this); + m_button_unbind->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDialog::on_unbind_printer), NULL, this); + m_button_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDialog::on_cancel), NULL, this); } - UnBindMachineDilaog::~UnBindMachineDilaog() + UnBindMachineDialog::~UnBindMachineDialog() { - m_button_unbind->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDilaog::on_unbind_printer), NULL, this); - m_button_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDilaog::on_cancel), NULL, this); + m_button_unbind->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDialog::on_unbind_printer), NULL, this); + m_button_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UnBindMachineDialog::on_cancel), NULL, this); } -void UnBindMachineDilaog::on_cancel(wxCommandEvent &event) +void UnBindMachineDialog::on_cancel(wxCommandEvent &event) { EndModal(wxID_CANCEL); } -void UnBindMachineDilaog::on_unbind_printer(wxCommandEvent &event) +void UnBindMachineDialog::on_unbind_printer(wxCommandEvent &event) { if (!wxGetApp().is_user_login()) { m_status_text->SetLabelText(_L("Please log in first.")); @@ -455,13 +470,13 @@ void UnBindMachineDilaog::on_unbind_printer(wxCommandEvent &event) } } - void UnBindMachineDilaog::on_dpi_changed(const wxRect &suggested_rect) + void UnBindMachineDialog::on_dpi_changed(const wxRect &suggested_rect) { m_button_unbind->SetMinSize(BIND_DIALOG_BUTTON_SIZE); m_button_cancel->SetMinSize(BIND_DIALOG_BUTTON_SIZE); } -void UnBindMachineDilaog::on_show(wxShowEvent &event) +void UnBindMachineDialog::on_show(wxShowEvent &event) { //m_printer_name->SetLabelText(m_machine_info->get_printer_type_string()); m_printer_name->SetLabelText(from_u8(m_machine_info->dev_name)); diff --git a/src/slic3r/GUI/BindDialog.hpp b/src/slic3r/GUI/BindDialog.hpp index 6320e3dfb3..803bb1535c 100644 --- a/src/slic3r/GUI/BindDialog.hpp +++ b/src/slic3r/GUI/BindDialog.hpp @@ -42,7 +42,7 @@ struct MemoryStruct size_t size; }; -class BindMachineDilaog : public DPIDialog +class BindMachineDialog : public DPIDialog { private: wxStaticText * m_printer_name; @@ -60,8 +60,8 @@ private: std::shared_ptr m_status_bar; public: - BindMachineDilaog(Plater *plater = nullptr); - ~BindMachineDilaog(); + BindMachineDialog(Plater *plater = nullptr); + ~BindMachineDialog(); void on_cancel(wxCommandEvent &event); void on_bind_fail(wxCommandEvent &event); void on_update_message(wxCommandEvent &event); @@ -70,9 +70,10 @@ public: void on_dpi_changed(const wxRect &suggested_rect) override; void update_machine_info(MachineObject *info) { m_machine_info = info; }; void on_show(wxShowEvent &event); + void on_close(wxCloseEvent& event); }; -class UnBindMachineDilaog : public DPIDialog +class UnBindMachineDialog : public DPIDialog { protected: wxStaticText * m_printer_name; @@ -84,8 +85,8 @@ protected: wxStaticBitmap *m_avatar; public: - UnBindMachineDilaog(Plater *plater = nullptr); - ~UnBindMachineDilaog(); + UnBindMachineDialog(Plater *plater = nullptr); + ~UnBindMachineDialog(); void on_cancel(wxCommandEvent &event); void on_unbind_printer(wxCommandEvent &event); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index f5dab138a2..c33f1b2ba0 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -122,7 +122,7 @@ MachineObjectPanel::~MachineObjectPanel() {} void MachineObjectPanel::show_bind_dialog() { if (wxGetApp().is_user_login()) { - BindMachineDilaog dlg; + BindMachineDialog dlg; dlg.update_machine_info(m_info); dlg.ShowModal(); } @@ -559,7 +559,7 @@ void SelectMachinePopup::update_other_devices() }); op->Bind(EVT_BIND_MACHINE, [this, mobj](wxCommandEvent &e) { - BindMachineDilaog dlg; + BindMachineDialog dlg; dlg.update_machine_info(mobj); int dlg_result = wxID_CANCEL; dlg_result = dlg.ShowModal(); @@ -647,7 +647,7 @@ void SelectMachinePopup::update_user_devices() op->show_printer_bind(true, PrinterBindState::ALLOW_UNBIND); op->Bind(EVT_UNBIND_MACHINE, [this, mobj, dev](wxCommandEvent& e) { // show_unbind_dialog - UnBindMachineDilaog dlg; + UnBindMachineDialog dlg; dlg.update_machine_info(mobj); if (dlg.ShowModal() == wxID_OK) { dev->set_selected_machine("");