diff --git a/src/slic3r/GUI/BindDialog.cpp b/src/slic3r/GUI/BindDialog.cpp index 283add6c0..bf27a7c9d 100644 --- a/src/slic3r/GUI/BindDialog.cpp +++ b/src/slic3r/GUI/BindDialog.cpp @@ -108,42 +108,7 @@ wxString get_fail_reason(int code) wxBoxSizer *m_sizer_right_h = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *m_sizer_right_v = new wxBoxSizer(wxVERTICAL); - - Bind(wxEVT_WEBREQUEST_STATE, [this](wxWebRequestEvent& evt) { - switch (evt.GetState()) { - // Request completed - case wxWebRequest::State_Completed: { - wxImage avatar_stream = *evt.GetResponse().GetStream(); - if (avatar_stream.IsOk()) { - avatar_stream.Rescale(FromDIP(60), FromDIP(60)); - auto bitmap = new wxBitmap(avatar_stream); - //bitmap->SetSize(wxSize(FromDIP(60), FromDIP(60))); - m_avatar->SetBitmap(*bitmap); - Layout(); - } - break; - } - // Request failed - case wxWebRequest::State_Failed: { - break; - } - } - }); - - if (wxGetApp().is_user_login()) { - wxString username_text = from_u8(wxGetApp().getAgent()->get_user_nickanme()); - m_user_name->SetLabelText(username_text); - - m_avatar = new wxStaticBitmap(m_panel_right, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(60), FromDIP(60)), 0); - - web_request = wxWebSession::GetDefault().CreateRequest(this, wxGetApp().getAgent()->get_user_avatar()); - if (!web_request.IsOk()) { - // todo request fail - } - // Start the request - web_request.Start(); - } - + m_avatar = new wxStaticBitmap(m_panel_right, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(60), FromDIP(60)), 0); m_sizer_right_v->Add(m_avatar, 0, wxALIGN_CENTER, 0); m_sizer_right_v->Add(0, 0, 0, wxTOP, 7); m_sizer_right_v->Add(m_user_name, 0, wxALIGN_CENTER, 0); @@ -467,8 +432,27 @@ wxString get_fail_reason(int code) Centre(wxBOTH); Bind(wxEVT_SHOW, &BindMachineDialog::on_show, this); - Bind(wxEVT_CLOSE_WINDOW, &BindMachineDialog::on_close, this); + Bind(wxEVT_WEBREQUEST_STATE, [this](wxWebRequestEvent& evt) { + switch (evt.GetState()) { + // Request completed + case wxWebRequest::State_Completed: { + wxImage avatar_stream = *evt.GetResponse().GetStream(); + if (avatar_stream.IsOk()) { + avatar_stream.Rescale(FromDIP(60), FromDIP(60)); + auto bitmap = new wxBitmap(avatar_stream); + //bitmap->SetSize(wxSize(FromDIP(60), FromDIP(60))); + m_avatar->SetBitmap(*bitmap); + Layout(); + } + break; + } + // Request failed + case wxWebRequest::State_Failed: { + break; + } + } + }); 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); @@ -661,6 +645,18 @@ void BindMachineDialog::on_show(wxShowEvent &event) m_printer_img->Show(); m_printer_name->SetLabelText(from_u8(m_machine_info->dev_name)); + + if (wxGetApp().is_user_login()) { + wxString username_text = from_u8(wxGetApp().getAgent()->get_user_nickanme()); + m_user_name->SetLabelText(username_text); + web_request = wxWebSession::GetDefault().CreateRequest(this, wxGetApp().getAgent()->get_user_avatar()); + if (!web_request.IsOk()) { + // todo request fail + } + // Start the request + web_request.Start(); + } + Layout(); event.Skip(); } @@ -720,42 +716,6 @@ UnBindMachineDialog::UnBindMachineDialog(Plater *plater /*= nullptr*/) wxBoxSizer *m_sizer_right_v = new wxBoxSizer(wxVERTICAL); m_avatar = new wxStaticBitmap(m_panel_right, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(60), FromDIP(60)), 0); - - if (wxGetApp().is_user_login()) { - wxString username_text = from_u8(wxGetApp().getAgent()->get_user_name()); - m_user_name->SetLabelText(username_text); - wxString avatar_url = wxGetApp().getAgent()->get_user_avatar(); - wxWebRequest request = wxWebSession::GetDefault().CreateRequest(this, avatar_url); - if (!request.IsOk()) { - // todo request fail - } - request.Start(); - } - - - Bind(wxEVT_WEBREQUEST_STATE, [this](wxWebRequestEvent &evt) { - switch (evt.GetState()) { - // Request completed - case wxWebRequest::State_Completed: { - wxImage avatar_stream = *evt.GetResponse().GetStream(); - if (avatar_stream.IsOk()) { - avatar_stream.Rescale(FromDIP(60), FromDIP(60)); - auto bitmap = new wxBitmap(avatar_stream); - //bitmap->SetSize(wxSize(FromDIP(60), FromDIP(60))); - m_avatar->SetBitmap(*bitmap); - Layout(); - } - break; - } - // Request failed - case wxWebRequest::State_Failed: { - break; - } - } - }); - - - m_sizer_right_v->Add(m_avatar, 0, wxALIGN_CENTER, 0); m_sizer_right_v->Add(0, 0, 0, wxTOP, 7); m_sizer_right_v->Add(m_user_name, 0, wxALIGN_CENTER, 0); @@ -817,6 +777,28 @@ UnBindMachineDialog::UnBindMachineDialog(Plater *plater /*= nullptr*/) 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); + + Bind(wxEVT_WEBREQUEST_STATE, [this](wxWebRequestEvent& evt) { + switch (evt.GetState()) { + // Request completed + case wxWebRequest::State_Completed: { + wxImage avatar_stream = *evt.GetResponse().GetStream(); + if (avatar_stream.IsOk()) { + avatar_stream.Rescale(FromDIP(60), FromDIP(60)); + auto bitmap = new wxBitmap(avatar_stream); + //bitmap->SetSize(wxSize(FromDIP(60), FromDIP(60))); + m_avatar->SetBitmap(*bitmap); + Layout(); + } + break; + } + // Request failed + case wxWebRequest::State_Failed: { + break; + } + } + }); + wxGetApp().UpdateDlgDarkUI(this); } @@ -885,6 +867,19 @@ void UnBindMachineDialog::on_show(wxShowEvent &event) m_printer_img->Show(); m_printer_name->SetLabelText(from_u8(m_machine_info->dev_name)); + + + if (wxGetApp().is_user_login()) { + wxString username_text = from_u8(wxGetApp().getAgent()->get_user_name()); + m_user_name->SetLabelText(username_text); + wxString avatar_url = wxGetApp().getAgent()->get_user_avatar(); + wxWebRequest request = wxWebSession::GetDefault().CreateRequest(this, avatar_url); + if (!request.IsOk()) { + // todo request fail + } + request.Start(); + } + Layout(); event.Skip(); } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 86a4a34e4..48af9eaf1 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1477,6 +1477,7 @@ int MachineObject::command_request_push_all(bool request_now) { auto curr_time = std::chrono::system_clock::now(); auto diff = std::chrono::duration_cast(curr_time - last_request_push); + if (diff.count() < REQUEST_PUSH_MIN_TIME) { if (request_now) { BOOST_LOG_TRIVIAL(trace) << "static: command_request_push_all, dev_id=" << dev_id; @@ -1490,6 +1491,7 @@ int MachineObject::command_request_push_all(bool request_now) BOOST_LOG_TRIVIAL(trace) << "static: command_request_push_all, dev_id=" << dev_id; last_request_push = std::chrono::system_clock::now(); } + json j; j["pushing"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++); j["pushing"]["command"] = "pushall"; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index e9bc4a638..db8721815 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1873,7 +1873,7 @@ void GUI_App::init_networking_callbacks() MachineObject* obj = m_device_manager->get_my_machine(tunnel ? dev_id.substr(7) : dev_id); if (obj) { obj->is_tunnel_mqtt = tunnel; - obj->command_request_push_all(); + obj->command_request_push_all(true); obj->command_get_version(); GUI::wxGetApp().sidebar().load_ams_list(obj->dev_id, obj); } @@ -1904,7 +1904,7 @@ void GUI_App::init_networking_callbacks() if (obj->is_lan_mode_printer()) { if (state == ConnectStatus::ConnectStatusOk) { - obj->command_request_push_all(); + obj->command_request_push_all(true); obj->command_get_version(); event.SetInt(0); event.SetString(obj->dev_id); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index d9d7e967e..6b767eed9 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1408,14 +1408,6 @@ void StatusPanel::init_scaled_buttons() m_bpButton_e_down_10->SetCornerRadius(FromDIP(12)); } -void StatusPanel::clean_tasklist_info() -{ - m_tasklist_info_sizer = new wxGridBagSizer(4, 8); - for (int i = 0; i < slice_info_list.size(); i++) { delete slice_info_list[i]; } - slice_info_list.clear(); - show_task_list_info(false); -} - void StatusPanel::create_tasklist_info() { m_tasklist_caption_sizer = new wxBoxSizer(wxHORIZONTAL); @@ -1449,8 +1441,6 @@ void StatusPanel::show_task_list_info(bool show) void StatusPanel::update_tasklist_info() { - clean_tasklist_info(); - // BBS do not show tasklist return; } @@ -3552,7 +3542,6 @@ void StatusPanel::set_default() m_ams_control->Hide(); m_ams_control_box->Hide(); m_ams_control->Reset(); - clean_tasklist_info(); error_info_reset(); } @@ -3679,12 +3668,6 @@ void StatusPanel::msw_rescale() init_scaled_buttons(); m_gauge_progress->Rescale(); - - for (int i = 0; i < slice_info_list.size(); i++) { - slice_info_list[i]->SetImages(m_bitmap_item_prediction, m_bitmap_item_cost, m_bitmap_item_print); - slice_info_list[i]->msw_rescale(); - } - m_bpButton_xy->Rescale(); m_tempCtrl_nozzle->SetMinSize(TEMP_CTRL_MIN_SIZE); m_tempCtrl_nozzle->Rescale(); diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 16bacf8cf..37c6de093 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -268,7 +268,6 @@ protected: std::shared_ptr m_slice_info_popup; std::shared_ptr m_image_popup; std::shared_ptr m_camera_popup; - std::vector slice_info_list; std::set rated_model_id; AMSSetting *m_ams_setting_dlg{nullptr}; PrintOptionsDialog* print_options_dlg { nullptr }; @@ -311,7 +310,6 @@ protected: void init_scaled_buttons(); void update_error_message(); void create_tasklist_info(); - void clean_tasklist_info(); void show_task_list_info(bool show = true); void update_tasklist_info();