From a4c1e1728486aa28129b2b42066c7f397318f371 Mon Sep 17 00:00:00 2001 From: "yifan.wu" Date: Sat, 23 Jul 2022 12:17:14 +0800 Subject: [PATCH 01/10] ENH: only display perform button in Gap Fill tool Signed-off-by: yifan.wu Change-Id: If4cefd99ebe526a7d266b5e4bd9f6115f1b440e2 --- src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp index 5b0697593a7..92331c80962 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp @@ -397,16 +397,20 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l show_tooltip_information(caption_max, x, get_cur_y); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 5.0f)); ImGui::SameLine(); - if (m_imgui->button(m_desc.at("perform_filter"))) { - Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Reset selection", UndoRedo::SnapshotType::GizmoAction); - for (int i = 0; i < m_triangle_selectors.size(); i++) { - TriangleSelectorPatch *ts_mm = dynamic_cast(m_triangle_selectors[i].get()); - ts_mm->update_selector_triangles(); - ts_mm->request_update_render_data(true); + // Perform button is for gap fill + if (m_current_tool == ImGui::FragmentFilterIcon) { + if (m_imgui->button(m_desc.at("perform_filter"))) { + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Reset selection", UndoRedo::SnapshotType::GizmoAction); + + for (int i = 0; i < m_triangle_selectors.size(); i++) { + TriangleSelectorPatch* ts_mm = dynamic_cast(m_triangle_selectors[i].get()); + ts_mm->update_selector_triangles(); + ts_mm->request_update_render_data(true); + } + update_model_object(); + m_parent.set_as_dirty(); } - update_model_object(); - m_parent.set_as_dirty(); } ImGui::SameLine(); From 9300f3a00dc9cd4dda6620cce8c3282e88cb17c1 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Jul 2022 11:59:58 +0800 Subject: [PATCH 02/10] add more check when bambu network init Change-Id: I63cc93759fcb7c2717472a32b98d833e257aea49 --- src/slic3r/GUI/GUI_App.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 5cd33df7672..c8eb0074b6e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1233,7 +1233,7 @@ int GUI_App::download_plugin(InstallProgressFn pro_fn, WasCancelledFn cancel_fn) return result; } - + if (download_url.empty()) { BOOST_LOG_TRIVIAL(info) << "[download_plugin]: no availaible plugin found for this app version: " << SLIC3R_VERSION; if (pro_fn) pro_fn(InstallStatusDownloadFailed, 0, cancel); @@ -1310,12 +1310,14 @@ int GUI_App::install_plugin(InstallProgressFn pro_fn, WasCancelledFn cancel_fn) mz_zip_archive archive; mz_zip_zero_struct(&archive); if (!open_zip_reader(&archive, target_file_path)) { + BOOST_LOG_TRIVIAL(error) << boost::format("install_plugin: %1%, open zip file failed")%__LINE__; if (pro_fn) pro_fn(InstallStatusDownloadFailed, 0, cancel); return InstallStatusUnzipFailed; } mz_uint num_entries = mz_zip_reader_get_num_files(&archive); mz_zip_archive_file_stat stat; + BOOST_LOG_TRIVIAL(error) << boost::format("install_plugin: %1%, got %2% files")%__LINE__ %num_entries; for (mz_uint i = 0; i < num_entries; i++) { if (m_networking_cancel_update || cancel) { BOOST_LOG_TRIVIAL(info) << boost::format("install_plugin: %1%, cancelled by user")%__LINE__; @@ -1368,6 +1370,9 @@ int GUI_App::install_plugin(InstallProgressFn pro_fn, WasCancelledFn cancel_fn) } } } + else { + BOOST_LOG_TRIVIAL(error) << boost::format("install_plugin: %1%, mz_zip_reader_file_stat for file %2% failed")%__LINE__%i; + } } close_zip_reader(&archive); @@ -1380,7 +1385,7 @@ int GUI_App::install_plugin(InstallProgressFn pro_fn, WasCancelledFn cancel_fn) void GUI_App::restart_networking() { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format("enter, mainframe %1%")%mainframe; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(" enter, mainframe %1%")%mainframe; on_init_network(); if(m_agent) { init_networking_callbacks(); @@ -1402,7 +1407,7 @@ void GUI_App::restart_networking() if (plater_) plater_->get_notification_manager()->bbl_close_plugin_install_notification(); } - BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format("exit, m_agent=%1%")%m_agent; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(" exit, m_agent=%1%")%m_agent; } int GUI_App::updating_bambu_networking() @@ -2121,7 +2126,15 @@ bool GUI_App::on_init_network() BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_init_network, load dll ok"; if (check_networking_version()) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_init_network, compatibility version"; - create_network_agent = true; + auto bambu_source = Slic3r::NetworkAgent::get_bambu_source_entry(); + if (!bambu_source) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": can not get bambu source module!"; + if (app_config->get("installed_networking") == "1") { + m_networking_need_update = true; + } + } + else + create_network_agent = true; } else { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_init_network, version dismatch, need upload network module"; if (app_config->get("installed_networking") == "1") { From b9f22f2a04b9a07cdab11202af5cae85ff5d995e Mon Sep 17 00:00:00 2001 From: gerrit Date: Sat, 23 Jul 2022 12:35:24 +0800 Subject: [PATCH 03/10] ci: update build version to 01.01.00.14 Change-Id: I4d25e1bf28983ef46fabf08d7b299ee2976d5af6 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 90d37ecdb20..7fbfb655e2f 100644 --- a/version.inc +++ b/version.inc @@ -7,4 +7,4 @@ set(SLIC3R_APP_KEY "BambuStudio") if(NOT DEFINED BBL_RELEASE_TO_PUBLIC) set(BBL_RELEASE_TO_PUBLIC "0") endif() -set(SLIC3R_VERSION "01.01.00.13") +set(SLIC3R_VERSION "01.01.00.14") From 4d59db23e4a74c6fa1b5634d9887caa06e79e7ba Mon Sep 17 00:00:00 2001 From: tao wang Date: Tue, 19 Jul 2022 21:31:27 +0800 Subject: [PATCH 04/10] FIX:fixed amsmapping button can not get click event on macos Change-Id: I4816365a2857e3e40c805af0e94654a8684c155c --- src/slic3r/GUI/AmsMappingPopup.cpp | 214 +++++++++++++++++++++-------- src/slic3r/GUI/AmsMappingPopup.hpp | 22 ++- src/slic3r/GUI/SelectMachine.cpp | 9 +- 3 files changed, 187 insertions(+), 58 deletions(-) diff --git a/src/slic3r/GUI/AmsMappingPopup.cpp b/src/slic3r/GUI/AmsMappingPopup.cpp index 94f33fdf997..80c1a284eff 100644 --- a/src/slic3r/GUI/AmsMappingPopup.cpp +++ b/src/slic3r/GUI/AmsMappingPopup.cpp @@ -62,7 +62,6 @@ void MaterialItem::on_selected() m_selected = true; Refresh(); } - } void MaterialItem::on_warning() @@ -184,13 +183,19 @@ void MaterialItem::doRender(wxDC &dc) SetMinSize(wxSize(FromDIP(220), -1)); SetMaxSize(wxSize(FromDIP(220), -1)); Bind(wxEVT_PAINT, &AmsMapingPopup::paintEvent, this); - SetBackgroundColour(*wxWHITE); + + #if __APPLE__ + Bind(wxEVT_LEFT_DOWN, &AmsMapingPopup::on_left_down, this); + #endif + + SetBackgroundColour(*wxWHITE); m_sizer_main = new wxBoxSizer(wxVERTICAL); //m_sizer_main->Add(0, 0, 1, wxEXPAND, 0); SetSizer(m_sizer_main); Layout(); + } @@ -205,14 +210,30 @@ void AmsMapingPopup::set_tag_texture(std::string texture) } -bool AmsMapingPopup::is_match_material(int id, std::string material) +bool AmsMapingPopup::is_match_material(std::string material) { return m_tag_material == material ? true : false; } +void AmsMapingPopup::on_left_down(wxMouseEvent &evt) +{ + auto pos = ClientToScreen(evt.GetPosition()); + for (MappingItem *item : m_mapping_item_list) { + auto p_rect = item->ClientToScreen(wxPoint(0, 0)); + auto left = item->GetSize(); + + if (pos.x > p_rect.x && pos.y > p_rect.y && pos.x < (p_rect.x + item->GetSize().x) && pos.y < (p_rect.y + item->GetSize().y)) { + if (item->m_tray_data.type == TrayType::NORMAL && !is_match_material(item->m_tray_data.name)) return; + item->send_event(m_current_filament_id); + Dismiss(); + } + } +} + void AmsMapingPopup::update_ams_data(std::map amsList) { + m_mapping_item_list.clear(); if (m_amsmapping_sizer_list.size() > 0) { for (wxBoxSizer *bz : m_amsmapping_sizer_list) { bz->Clear(true); } m_amsmapping_sizer_list.clear(); @@ -272,80 +293,63 @@ void AmsMapingPopup::add_ams_mapping(std::vector tray_data) // set button - Button *m_filament_name = new Button(this, "", wxEmptyString); + MappingItem *m_filament_name = new MappingItem(this); m_filament_name->SetSize(wxSize(FromDIP(38), FromDIP(20))); m_filament_name->SetMinSize(wxSize(FromDIP(38), FromDIP(20))); m_filament_name->SetMaxSize(wxSize(FromDIP(38), FromDIP(20))); - m_filament_name->SetCornerRadius(5); + //m_filament_name->SetCornerRadius(5); m_filament_name->SetFont(::Label::Body_12); + m_mapping_item_list.push_back(m_filament_name); if (tray_data[i].type == NORMAL) { - - if (m_filament_name->GetTextExtent(tray_data[i].name).x > FromDIP(38)) { - m_filament_name->SetFont(::Label::Body_10); - auto name = tray_data[i].name.substr(0, 3) + "." + tray_data[i].name.substr(tray_data[i].name.length() - 1); - m_filament_name->SetLabel(name); - } else { - m_filament_name->SetLabel(tray_data[i].name); - } - - auto material_name_colour = tray_data[i].colour.GetLuminance() < 0.5 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30); - m_filament_name->SetTextColor(material_name_colour); - m_filament_name->SetBackgroundColor(tray_data[i].colour); - - if (tray_data[i].colour == *wxWHITE) { - m_filament_name->SetBorderColor(wxColour(0xAC, 0xAC, 0xAC)); - } else { - m_filament_name->SetBorderColor(tray_data[i].colour); - } - - m_filament_name->Bind(wxEVT_BUTTON, [this, tray_data, i](wxCommandEvent &e) { - if (!is_match_material(tray_data[i].id, tray_data[i].name)) return; - wxCommandEvent event(EVT_SET_FINISH_MAPPING); - event.SetInt(tray_data[i].id); - wxString param = wxString::Format("%d|%d|%d|%02d|%d", tray_data[i].colour.Red(), tray_data[i].colour.Green(), tray_data[i].colour.Blue(), tray_data[i].id + 1, m_current_filament_id); - event.SetString(param); - event.SetEventObject(this->GetParent()); - wxPostEvent(this->GetParent(), event); + m_filament_name->set_data(tray_data[i].colour, tray_data[i].name, tray_data[i]); + m_filament_name->Bind(wxEVT_LEFT_DOWN, [this, tray_data, i, m_filament_name](wxMouseEvent &e) { + if (!is_match_material(tray_data[i].name)) return; + m_filament_name->send_event(m_current_filament_id); Dismiss(); + /* wxCommandEvent event(EVT_SET_FINISH_MAPPING); + event.SetInt(tray_data[i].id); + wxString param = wxString::Format("%d|%d|%d|%02d|%d", tray_data[i].colour.Red(), tray_data[i].colour.Green(), tray_data[i].colour.Blue(), tray_data[i].id + 1, + m_current_filament_id); + event.SetString(param); + event.SetEventObject(this->GetParent()); + wxPostEvent(this->GetParent(), event); + Dismiss();*/ }); } // temp if (tray_data[i].type == EMPTY) { - m_filament_name->SetLabel("-"); - m_filament_name->SetTextColor(*wxWHITE); - m_filament_name->SetBackgroundColor(wxColour(0x6B, 0x6B, 0x6B)); - m_filament_name->SetBorderColor(wxColour(0x6B, 0x6B, 0x6B)); - m_filament_name->Bind(wxEVT_BUTTON, [this, tray_data, i](wxCommandEvent &e) { - wxCommandEvent event(EVT_SET_FINISH_MAPPING); - event.SetInt(tray_data[i].id); - wxString param = wxString::Format("%d|%d|%d|%02d|%d", 0x6B, 0x6B, 0x6B, tray_data[i].id + 1, m_current_filament_id); - event.SetString(param); - event.SetEventObject(this->GetParent()); - wxPostEvent(this->GetParent(), event); + m_filament_name->set_data(wxColour(0x6B, 0x6B, 0x6B), "-", tray_data[i]); + m_filament_name->Bind(wxEVT_LEFT_DOWN, [this, tray_data, i, m_filament_name](wxMouseEvent &e) { + m_filament_name->send_event(m_current_filament_id); + /* wxCommandEvent event(EVT_SET_FINISH_MAPPING); + event.SetInt(tray_data[i].id); + wxString param = wxString::Format("%d|%d|%d|%02d|%d", 0x6B, 0x6B, 0x6B, tray_data[i].id + 1, m_current_filament_id); + event.SetString(param); + event.SetEventObject(this->GetParent()); + wxPostEvent(this->GetParent(), event);*/ Dismiss(); }); } // third party if (tray_data[i].type == THIRD) { - m_filament_name->SetLabel("?"); - m_filament_name->SetTextColor(*wxWHITE); - m_filament_name->SetBackgroundColor(wxColour(0x6B, 0x6B, 0x6B)); - m_filament_name->SetBorderColor(wxColour(0x6B, 0x6B, 0x6B)); - m_filament_name->Bind(wxEVT_BUTTON, [this, tray_data, i](wxCommandEvent &e) { - wxCommandEvent event(EVT_SET_FINISH_MAPPING); - event.SetInt(tray_data[i].id); - wxString param = wxString::Format("%d|%d|%d|%02d|%d", 0x6B, 0x6B, 0x6B, tray_data[i].id + 1, m_current_filament_id); - event.SetString(param); - event.SetEventObject(this->GetParent()); - wxPostEvent(this->GetParent(), event); + m_filament_name->set_data(wxColour(0x6B, 0x6B, 0x6B), "?", tray_data[i]); + m_filament_name->Bind(wxEVT_LEFT_DOWN, [this, tray_data, i, m_filament_name](wxMouseEvent &e) { + m_filament_name->send_event(m_current_filament_id); + //wxCommandEvent event(EVT_SET_FINISH_MAPPING); + //event.SetInt(tray_data[i].id); + //wxString param = wxString::Format("%d|%d|%d|%02d|%d", 0x6B, 0x6B, 0x6B, tray_data[i].id + 1, m_current_filament_id); + //event.SetString(param); + //event.SetEventObject(this->GetParent()); + //wxPostEvent(this->GetParent(), event); Dismiss(); }); } + sizer_mapping_item->Add(number, 0, wxALIGN_CENTER_HORIZONTAL, 0); sizer_mapping_item->Add(m_filament_name, 0, wxALIGN_CENTER_HORIZONTAL, 0); sizer_mapping_list->Add(sizer_mapping_item, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, FromDIP(5)); @@ -372,4 +376,106 @@ void AmsMapingPopup::paintEvent(wxPaintEvent &evt) dc.DrawRoundedRectangle(0, 0, GetSize().x, GetSize().y, 0); } + MappingItem::MappingItem(wxWindow *parent) + : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize) +{ +#ifdef __WINDOWS__ + SetDoubleBuffered(true); +#endif //__WINDOWS__ + SetBackgroundColour(*wxWHITE); + Bind(wxEVT_PAINT, &MappingItem::paintEvent, this); +} + + MappingItem::~MappingItem() +{ +} + + +void MappingItem::send_event(int fliament_id) +{ + wxCommandEvent event(EVT_SET_FINISH_MAPPING); + event.SetInt(m_tray_data.id); + wxString param = wxString::Format("%d|%d|%d|%02d|%d", m_coloul.Red(), m_coloul.Green(), m_coloul.Blue(), m_tray_data.id + 1, fliament_id); + event.SetString(param); + event.SetEventObject(this->GetParent()->GetParent()); + wxPostEvent(this->GetParent()->GetParent(), event); + + /* wxCommandEvent event(EVT_SET_FINISH_MAPPING); + event.SetInt(tray_data[i].id); + wxString param = wxString::Format("%d|%d|%d|%02d|%d", tray_data[i].colour.Red(), tray_data[i].colour.Green(), tray_data[i].colour.Blue(), tray_data[i].id + 1, + m_current_filament_id); + event.SetString(param); + event.SetEventObject(this->GetParent()); + wxPostEvent(this->GetParent(), event);*/ +} + + void MappingItem::msw_rescale() +{ +} + +void MappingItem::paintEvent(wxPaintEvent &evt) +{ + wxPaintDC dc(this); + render(dc); + + // PrepareDC(buffdc); + // PrepareDC(dc); +} + +void MappingItem::render(wxDC &dc) +{ +#ifdef __WXMSW__ + wxSize size = GetSize(); + wxMemoryDC memdc; + wxBitmap bmp(size.x, size.y); + memdc.SelectObject(bmp); + memdc.Blit({0, 0}, size, &dc, {0, 0}); + + { + wxGCDC dc2(memdc); + doRender(dc2); + } + + memdc.SelectObject(wxNullBitmap); + dc.DrawBitmap(bmp, 0, 0); +#else + doRender(dc); +#endif + + // materials name + dc.SetFont(::Label::Body_13); + + auto txt_colour = m_coloul.GetLuminance() < 0.5 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30); + dc.SetTextForeground(txt_colour); + + if (dc.GetTextExtent(m_name).x > GetSize().x - 10) { + dc.SetFont(::Label::Body_10); + m_name = m_name.substr(0, 3) + "." + m_name.substr(m_name.length() - 1); + } + + auto txt_size = dc.GetTextExtent(m_name); + dc.DrawText(m_name, wxPoint((GetSize().x - txt_size.x) / 2, (GetSize().y - txt_size.y) / 2)); +} + +void MappingItem::set_data(wxColour colour, wxString name, TrayData data) +{ + m_tray_data = data; + if (m_coloul != colour || m_name != name) { + m_coloul = colour; + m_name = name; + Refresh(); + } +} + +void MappingItem::doRender(wxDC &dc) +{ + dc.SetPen(m_coloul); + dc.SetBrush(wxBrush(m_coloul)); + dc.DrawRoundedRectangle(0, 0, GetSize().x, GetSize().y,5); + if (m_coloul == *wxWHITE) { + dc.SetPen(wxPen(wxColour(0xAC, 0xAC, 0xAC),1)); + dc.DrawRoundedRectangle(0, 0, GetSize().x, GetSize().y, 5); + } +} + }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/AmsMappingPopup.hpp b/src/slic3r/GUI/AmsMappingPopup.hpp index 2acc95af0ea..fd0fe52eeea 100644 --- a/src/slic3r/GUI/AmsMappingPopup.hpp +++ b/src/slic3r/GUI/AmsMappingPopup.hpp @@ -85,6 +85,24 @@ class MaterialItem: public wxPanel void doRender(wxDC &dc); }; +class MappingItem : public wxPanel +{ +public: + MappingItem(wxWindow *parent); + ~MappingItem(); + + void update_data(TrayData data); + void send_event(int fliament_id); + wxColour m_coloul; + wxString m_name; + TrayData m_tray_data; + + void msw_rescale(); + void paintEvent(wxPaintEvent &evt); + void render(wxDC &dc); + void set_data(wxColour colour, wxString name, TrayData data); + void doRender(wxDC &dc); +}; class AmsMapingPopup : public wxPopupTransientWindow { @@ -94,6 +112,7 @@ class AmsMapingPopup : public wxPopupTransientWindow std::vector m_materials_list; std::vector m_amsmapping_sizer_list; + std::vector m_mapping_item_list; int m_current_filament_id; std::string m_tag_material; @@ -105,7 +124,8 @@ class AmsMapingPopup : public wxPopupTransientWindow void add_ams_mapping(std::vector tray_data); void set_current_filament_id(int id){m_current_filament_id = id;}; int get_current_filament_id(){return m_current_filament_id;}; - bool is_match_material(int id, std::string material); + bool is_match_material(std::string material); + void on_left_down(wxMouseEvent &evt); virtual void OnDismiss() wxOVERRIDE; virtual bool ProcessLeftDown(wxMouseEvent &event) wxOVERRIDE; void paintEvent(wxPaintEvent &evt); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index c79a9589014..561b33b8868 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1064,7 +1064,7 @@ void SelectMachineDialog::sync_ams_mapping_result(std::vector &res ams_col = AmsTray::decode_color(f->color); } else { // default color - ams_col = wxColour(0x6B, 0x6B, 0x6B); + ams_col = wxColour(0xEE, 0xEE, 0xEE); } m->set_ams_info(ams_col, ams_id); @@ -1950,6 +1950,10 @@ void SelectMachineDialog::set_default() m_sizer_material->Add(item, 0, wxALL, FromDIP(4)); item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent &e) { + + }); + + item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent &e) { MaterialHash::iterator iter = m_materialList.begin(); while (iter != m_materialList.end()) { int id = iter->first; @@ -1961,9 +1965,8 @@ void SelectMachineDialog::set_default() m_current_filament_id = extruder; item->on_selected(); - }); - item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent &e) { + auto mouse_pos = ClientToScreen(e.GetPosition()); wxPoint rect = item->ClientToScreen(wxPoint(0, 0)); // update ams data From 2fd0238a47a8bb441a6030da26ae079e9168a2d4 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Jul 2022 16:02:59 +0800 Subject: [PATCH 05/10] set the default languange to wxLANGUAGE_ENGLISH_UK if not available Change-Id: Iaba8184eb84ac3f16d371ef54ae169acfd13393a --- src/slic3r/GUI/GUI_App.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index c8eb0074b6e..e5f697c657b 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3710,6 +3710,11 @@ bool GUI_App::load_language(wxString language, bool initial) } #endif + if (! wxLocale::IsAvailable(language_info->Language)&&initial) { + language_info = wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH_UK); + app_config->set("language", language_info->CanonicalName.ToUTF8().data()); + } + if (! wxLocale::IsAvailable(language_info->Language)) { // Loading the language dictionary failed. wxString message = "Switching Bambu Studio to language " + language_info->CanonicalName + " failed."; From cfd62e4aeb2e7b387322c03fb39ccfc177d2f307 Mon Sep 17 00:00:00 2001 From: "stone.li" Date: Sat, 23 Jul 2022 16:34:49 +0800 Subject: [PATCH 06/10] ENH: use order mapping with U0 firmware do not check iot environment Signed-off-by: stone.li Change-Id: I500ec81fb9f8cdf706cac38b19bd52218ce52d1f Signed-off-by: stone.li --- src/libslic3r/AppConfig.cpp | 6 ++++++ src/slic3r/GUI/DeviceManager.cpp | 35 ++++++++++++++++++++++++-------- src/slic3r/GUI/SelectMachine.cpp | 32 ++++++++++++++++++++++------- 3 files changed, 58 insertions(+), 15 deletions(-) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 527e94da39e..c7f64c5a2ce 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -993,6 +993,9 @@ void AppConfig::update_last_backup_dir(const std::string& dir) std::string AppConfig::get_region() { +#if BBL_RELEASE_TO_PUBLIC + return this->get("region"); +#else std::string sel = get("iot_environment"); std::string region; if (sel == ENV_DEV_HOST) @@ -1004,12 +1007,15 @@ std::string AppConfig::get_region() if (region.empty()) return this->get("region"); return region; +#endif } std::string AppConfig::get_country_code() { std::string region = get_region(); +#if !BBL_RELEASE_TO_PUBLIC if (is_engineering_region()) { return region; } +#endif if (region == "CHN" || region == "China") return "CN"; else if (region == "USA") diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index ff2d74f0ebd..34590047700 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -647,10 +647,10 @@ int MachineObject::ams_filament_mapping(std::vector filaments, std for (int i = 0; i < filaments.size(); i++) { FilamentInfo info; info.id = filaments[i].id; - info.tray_id = -1; + info.tray_id = filaments[i].id; result.push_back(info); } - return 0; + return 1; } char buffer[256]; @@ -791,14 +791,33 @@ int MachineObject::ams_filament_mapping(std::vector filaments, std bool MachineObject::is_valid_mapping_result(std::vector& result) { - bool valid_ams_mapping_result = true; - for (int i = 0; i < result.size(); i++) { - if (result[i].tray_id == -1) { - valid_ams_mapping_result = false; - break; + if (is_support_ams_mapping()) { + bool valid_ams_mapping_result = true; + for (int i = 0; i < result.size(); i++) { + if (result[i].tray_id == -1) { + valid_ams_mapping_result = false; + break; + } + } + return valid_ams_mapping_result; + } else { + bool is_valid = true; + // invalid mapping result + if (result.empty()) return false; + for (int i = 0; i < result.size(); i++) { + // invalid mapping result + if (result[i].tray_id < 0) + return false; + else { + int ams_id = result[i].tray_id / 4; + if (amsList.find(std::to_string(ams_id)) == amsList.end()) { + return false; + } + } } + return is_valid; } - return valid_ams_mapping_result; + return true; } diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 561b33b8868..e1776abcdcf 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1105,8 +1105,22 @@ bool SelectMachineDialog::do_ams_mapping(MachineObject *obj_) sync_ams_mapping_result(m_ams_mapping_result); BOOST_LOG_TRIVIAL(info) << "ams_mapping_array=" << ams_array; } + return obj_->is_valid_mapping_result(m_ams_mapping_result); + } else { + // do not support ams mapping try to use order mapping + bool is_valid = obj_->is_valid_mapping_result(m_ams_mapping_result); + if (!is_valid) { + // reset invalid result + for (int i = 0; i < m_ams_mapping_result.size(); i++) { + m_ams_mapping_result[i].tray_id = -1; + m_ams_mapping_result[i].distance = 99999; + } + } + sync_ams_mapping_result(m_ams_mapping_result); + return is_valid; } - return obj_->is_valid_mapping_result(m_ams_mapping_result); + + return true; } bool SelectMachineDialog::get_ams_mapping_result(std::string &mapping_array_str) @@ -1292,13 +1306,13 @@ void SelectMachineDialog::show_status(PrintDialogStatus status) Enable_Send_Button(false); Enable_Refresh_Button(true); } else if (status == PrintDialogStatus::PrintStatusNeedUpgradingAms) { - wxString msg_text = _L("Printer firmware does not support material = >ams slot mapping."); - update_print_status_msg(msg_text, true, true); - Enable_Send_Button(true); + wxString msg_text = _L("The filament index exceeds the AMS's slot count and cannot send the print job."); + update_print_status_msg(msg_text, true, false); + Enable_Send_Button(false); Enable_Refresh_Button(true); } else if (status == PrintDialogStatus::PrintStatusAmsMappingSuccess){ wxString msg_text = _L("Filaments to AMS slots mappings have been established. You can click a filament above to change its mapping AMS slot"); - update_print_status_msg(msg_text, true, false); + update_print_status_msg(msg_text, false, false); Enable_Send_Button(true); Enable_Refresh_Button(true); } else if (status == PrintDialogStatus::PrintStatusAmsMappingInvalid) { @@ -1326,7 +1340,7 @@ void SelectMachineDialog::show_status(PrintDialogStatus status) Enable_Send_Button(true); Enable_Refresh_Button(true); } else if (status == PrintDialogStatus::PrintStatusAmsMappingByOrder) { - wxString msg_text = _L("Printer firmware does not support material = >ams slot mapping."); + wxString msg_text = _L("The printer firmware only supports sequential mapping of filament => AMS slot."); update_print_status_msg(msg_text, false, false); Enable_Send_Button(true); Enable_Refresh_Button(true); @@ -1768,7 +1782,11 @@ void SelectMachineDialog::update_show_status() } if (!obj_->is_support_ams_mapping()) { - show_status(PrintDialogStatus::PrintStatusNeedUpgradingAms); + if (obj_->is_valid_mapping_result(m_ams_mapping_result)) { + show_status(PrintDialogStatus::PrintStatusAmsMappingByOrder); + } else { + show_status(PrintDialogStatus::PrintStatusNeedUpgradingAms); + } return; } From 7bcd4d3a50eb5ca0bfc5a2ac2ea869764a63f4c0 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Jul 2022 17:14:46 +0800 Subject: [PATCH 07/10] update the pot files for newly added words Change-Id: Ifb2435a384ae5c8a6ef711fa51893dd2858d397c --- bbl/i18n/BambuStudio.pot | 11 +++++++++-- bbl/i18n/de/BambuStudio_de.po | 11 +++++++++-- bbl/i18n/en/BambuStudio_en.po | 11 +++++++++-- bbl/i18n/es/BambuStudio_es.po | 11 +++++++++-- bbl/i18n/fr/BambuStudio_fr.po | 11 +++++++++-- bbl/i18n/nl/BambuStudio_nl.po | 11 +++++++++-- bbl/i18n/sv/BambuStudio_sv.po | 15 +++++++++++---- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 22 +++++++++++++++++----- resources/i18n/de/BambuStudio.mo | Bin 162108 -> 162067 bytes resources/i18n/en/BambuStudio.mo | Bin 150341 -> 150300 bytes resources/i18n/es/BambuStudio.mo | Bin 162792 -> 162751 bytes resources/i18n/fr/BambuStudio.mo | Bin 164655 -> 164614 bytes resources/i18n/nl/BambuStudio.mo | Bin 161887 -> 161846 bytes resources/i18n/sv/BambuStudio.mo | Bin 152796 -> 152755 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 145708 -> 145921 bytes 15 files changed, 82 insertions(+), 21 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 42bb563e27e..e508e3646dc 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3225,7 +3225,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "" -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3238,6 +3240,11 @@ msgid "" "sending the print job" msgstr "" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 4ab95126d32..0abaa1cb636 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3431,7 +3431,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "The printer is busy with another print job." -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3448,6 +3450,11 @@ msgstr "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "Preparing print job" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 26900e11f51..3a313e16bd3 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3371,7 +3371,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "The printer is busy with another print job." -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3388,6 +3390,11 @@ msgstr "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "Preparing print job" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 6c761238de9..9a444fdd010 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3420,7 +3420,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "The printer is busy with another print job." -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3437,6 +3439,11 @@ msgstr "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "Preparing print job" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 1662ebfd31f..b3ae6e11320 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3403,7 +3403,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "The printer is busy with another print job." -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3420,6 +3422,11 @@ msgstr "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "Preparing print job" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 3012cbc3cb6..fce24136802 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3438,7 +3438,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "The printer is busy with another print job." -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3455,6 +3457,11 @@ msgstr "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "Preparing print job" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 5f64727728f..46ff2a97bac 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3369,7 +3369,9 @@ msgstr "" msgid "The printer is busy on other print job" msgstr "The printer is busy with another print job." -msgid "Printer firmware does not support material = >ams slot mapping." +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." msgstr "" msgid "" @@ -3386,6 +3388,11 @@ msgstr "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + msgid "Preparing print job" msgstr "Preparing print job" @@ -5890,8 +5897,8 @@ msgid "" "interface is Concentric" msgstr "" "Linje mönster för support gränssnittsytan .Standardmönstret för olösligt " -"(material) support gränssnittet är Räta medan standardmönstret för lösligt" -"(material) stödgränssnittet är koncentriskt" +"(material) support gränssnittet är Räta medan standardmönstret för " +"lösligt(material) stödgränssnittet är koncentriskt" msgid "Base pattern spacing" msgstr "Basens mönster mellanrum" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index fd99631ba23..f83ab5c5783 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-22 18:39+0800\n" +"POT-Creation-Date: 2022-07-23 18:15+0800\n" "PO-Revision-Date: 2022-07-22 13:28+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -1228,8 +1228,8 @@ msgid "" "Bambu Studio is based on PrusaSlicer by PrusaResearch and SuperSlicer by " "Merill(supermerill)." msgstr "" -"Bambu Studio是以PrusaResearch的PrusaSlicer和Merill的SuperSlicer" -"(supermerill)为基础的。" +"Bambu Studio是以PrusaResearch的PrusaSlicer和Merill(supermerill)的" +"SuperSlicer为基础的。" msgid "PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci." msgstr "MerillPrusasicle最初是以Alessandro Ranellucci为基础的Slic3r。" @@ -3309,8 +3309,12 @@ msgstr "打印机正在执行指令,请在其结束后重新发起打印" msgid "The printer is busy on other print job" msgstr "打印机正在执行其他打印任务" -msgid "Printer firmware does not support material = >ams slot mapping." -msgstr "打印机固件不支持材料=>AMS槽位映射" +msgid "" +"The filament index exceeds the AMS's slot count and cannot send the print " +"job." +msgstr "" +"打印机固件仅支持材料=>AMS槽位的顺序映射。材料编号超过AMS的槽位数量,无法发送" +"打印任务。" msgid "" "Filaments to AMS slots mappings have been established. You can click a " @@ -3324,6 +3328,11 @@ msgid "" "sending the print job" msgstr "请在发送打印前点击上方各个耗材丝,指定其所对应的AMS槽位" +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "打印机固件版本仅支持材料=>AMS槽位的顺序映射。" + msgid "Preparing print job" msgstr "正在准备打印任务" @@ -6048,6 +6057,9 @@ msgstr "支撑:正在修补层%d的空洞" msgid "Support: propagate branches at layer %d" msgstr "支撑:正在生长层%d的树枝" +#~ msgid "Printer firmware does not support material = >ams slot mapping." +#~ msgstr "打印机固件不支持材料=>AMS槽位映射" + #~ msgid "Creating" #~ msgstr "正在创建" diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index 02c02345e757c028738c304923756b3f688a3d0e..e43445e10874bfc638c32245c9f33107ce6109ea 100644 GIT binary patch delta 13777 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 diff --git a/resources/i18n/en/BambuStudio.mo b/resources/i18n/en/BambuStudio.mo index 0793698f0152ffb47d42ffa6aca6aeb5e9dedbe2..6d236e2dbc0ede545600182e61bd21ace5ee626c 100644 GIT binary patch delta 13725 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 L{5~Mv?YsX23g;$- delta 13764 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 p(ln!9oqF}M>NLu#S1+S(@t{J0Wt466+yH@Se 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 VyEYA)oi{Ccpl5ILK=0|Y{|}UmBpUz# delta 13809 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 VDn!LaMNNtA<=GM2%ll*D{{v)GDCz(J diff --git a/resources/i18n/nl/BambuStudio.mo b/resources/i18n/nl/BambuStudio.mo index 7364aa8afe8408dfe33b11ca8a0c5361b36a5aa3..fb2434853e9c6aa27f2b271efd4d6c369b7d5331 100644 GIT binary patch delta 13753 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 Q)$JdgTv`9t)Ut#B4?kZBRR910 delta 13755 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 B2EPCR delta 33623 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 Date: Sat, 23 Jul 2022 18:54:45 +0800 Subject: [PATCH 08/10] FIX: fix cannot connect to server Change-Id: Id3a4e2316c4f9a513b6acffda0bf08636441990b --- src/slic3r/GUI/GUI_App.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index e5f697c657b..4ddb027da0b 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1962,6 +1962,8 @@ bool GUI_App::on_init_inner() // Suppress the '- default -' presets. preset_bundle->set_default_suppressed(true); + Bind(EVT_USER_LOGIN, &GUI_App::on_user_login, this); + on_init_network(); //BBS if load user preset failed @@ -2063,7 +2065,7 @@ bool GUI_App::on_init_inner() //#endif //__APPLE__ Bind(EVT_HTTP_ERROR, &GUI_App::on_http_error, this); - Bind(EVT_USER_LOGIN, &GUI_App::on_user_login, this); + Bind(wxEVT_IDLE, [this](wxIdleEvent& event) { From 7a68cc56b297be123d6e632c9bf2afa682095555 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Jul 2022 18:49:16 +0800 Subject: [PATCH 09/10] fix the language code not correct issue Change-Id: I73092fee16b2e1284ac79e63edbb3165c04d5650 --- src/slic3r/GUI/GUI_App.cpp | 28 +++++++++++++++++++++++++--- src/slic3r/GUI/Preferences.cpp | 3 +-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 4ddb027da0b..0e1b798ea8c 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2523,6 +2523,7 @@ void GUI_App::recreate_GUI(const wxString& msg_name) dlg.Update(80, _L("Loading current presets") + dots); load_current_presets(); mainframe->Show(true); + mainframe->refresh_plugin_tips(); dlg.Update(90, _L("Loading a mode view") + dots); @@ -3601,7 +3602,7 @@ bool GUI_App::load_language(wxString language, bool initial) // Get the active language from PrusaSlicer.ini, or empty string if the key does not exist. language = app_config->get("language"); if (! language.empty()) - BOOST_LOG_TRIVIAL(trace) << boost::format("language provided by PrusaSlicer.ini: %1%") % language; + BOOST_LOG_TRIVIAL(trace) << boost::format("language provided by PBambuStudio.conf: %1%") % language; else { // Get the system language. const wxLanguage lang_system = wxLanguage(wxLocale::GetSystemLanguage()); @@ -3609,7 +3610,7 @@ bool GUI_App::load_language(wxString language, bool initial) m_language_info_system = wxLocale::GetLanguageInfo(lang_system); BOOST_LOG_TRIVIAL(trace) << boost::format("System language detected (user locales and such): %1%") % m_language_info_system->CanonicalName.ToUTF8().data(); // BBS set language to app config - app_config->set("language", m_language_info_system->CanonicalName.ToUTF8().data()); + //app_config->set("language", m_language_info_system->CanonicalName.ToUTF8().data()); } else { { std::map language_descptions = { @@ -3644,7 +3645,7 @@ bool GUI_App::load_language(wxString language, bool initial) m_language_info_best = wxLocale::FindLanguageInfo(best_language); BOOST_LOG_TRIVIAL(trace) << boost::format("Best translation language detected (may be different from user locales): %1%") % m_language_info_best->CanonicalName.ToUTF8().data(); - app_config->set("language", m_language_info_best->CanonicalName.ToUTF8().data()); + //app_config->set("language", m_language_info_best->CanonicalName.ToUTF8().data()); } #ifdef __linux__ wxString lc_all; @@ -3716,6 +3717,27 @@ bool GUI_App::load_language(wxString language, bool initial) language_info = wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH_UK); app_config->set("language", language_info->CanonicalName.ToUTF8().data()); } + else { + // bbs supported languages + //TODO: use a global one with Preference + wxLanguage supported_languages[] {wxLANGUAGE_ENGLISH, wxLANGUAGE_CHINESE_SIMPLIFIED, wxLANGUAGE_GERMAN, wxLANGUAGE_FRENCH, wxLANGUAGE_SPANISH, wxLANGUAGE_SWEDISH, wxLANGUAGE_DUTCH }; + std::string cur_language = app_config->get("language"); + if (cur_language != "") { + //cleanup the language wrongly set before + const wxLanguageInfo *langinfo = nullptr; + bool embedded_language = false; + for (auto index = 0; index < 7; index++) { + langinfo = wxLocale::GetLanguageInfo(supported_languages[index]); + std::string temp_lan = langinfo->CanonicalName.ToUTF8().data(); + if (cur_language == temp_lan) { + embedded_language = true; + break; + } + } + if (!embedded_language) + app_config->erase("app", "language"); + } + } if (! wxLocale::IsAvailable(language_info->Language)) { // Loading the language dictionary failed. diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index f6846263f59..cf426cb6f78 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -634,7 +634,6 @@ wxWindow* PreferencesDialog::create_general_page() // bbs supported languages wxLanguage supported_languages[]{wxLANGUAGE_ENGLISH, wxLANGUAGE_CHINESE_SIMPLIFIED, wxLANGUAGE_GERMAN, wxLANGUAGE_FRENCH, wxLANGUAGE_SPANISH, wxLANGUAGE_SWEDISH, wxLANGUAGE_DUTCH }; - auto translations = wxTranslations::Get()->GetAvailableTranslations(SLIC3R_APP_KEY); std::vector language_infos; language_infos.emplace_back(wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH)); @@ -643,7 +642,7 @@ wxWindow* PreferencesDialog::create_general_page() if (langinfo == nullptr) continue; - for (auto si = 0; si < sizeof(supported_languages); si++) { + for (auto si = 0; si < 7; si++) { if (langinfo == wxLocale::GetLanguageInfo(supported_languages[si])) { language_infos.emplace_back(langinfo); } From 5527ebb5e312ac56b5eb6ea04afa85bdd497cc10 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Jul 2022 21:25:57 +0800 Subject: [PATCH 10/10] FIX: set the default language to local if supported Change-Id: I03fb37dc4d28bb354c7711afde6d8fb389daa53f --- src/slic3r/GUI/GUI_App.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 0e1b798ea8c..18f9af9a896 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1963,7 +1963,7 @@ bool GUI_App::on_init_inner() preset_bundle->set_default_suppressed(true); Bind(EVT_USER_LOGIN, &GUI_App::on_user_login, this); - + on_init_network(); //BBS if load user preset failed @@ -2065,7 +2065,7 @@ bool GUI_App::on_init_inner() //#endif //__APPLE__ Bind(EVT_HTTP_ERROR, &GUI_App::on_http_error, this); - + Bind(wxEVT_IDLE, [this](wxIdleEvent& event) { @@ -3610,7 +3610,7 @@ bool GUI_App::load_language(wxString language, bool initial) m_language_info_system = wxLocale::GetLanguageInfo(lang_system); BOOST_LOG_TRIVIAL(trace) << boost::format("System language detected (user locales and such): %1%") % m_language_info_system->CanonicalName.ToUTF8().data(); // BBS set language to app config - //app_config->set("language", m_language_info_system->CanonicalName.ToUTF8().data()); + app_config->set("language", m_language_info_system->CanonicalName.ToUTF8().data()); } else { { std::map language_descptions = { @@ -3645,7 +3645,7 @@ bool GUI_App::load_language(wxString language, bool initial) m_language_info_best = wxLocale::FindLanguageInfo(best_language); BOOST_LOG_TRIVIAL(trace) << boost::format("Best translation language detected (may be different from user locales): %1%") % m_language_info_best->CanonicalName.ToUTF8().data(); - //app_config->set("language", m_language_info_best->CanonicalName.ToUTF8().data()); + app_config->set("language", m_language_info_best->CanonicalName.ToUTF8().data()); } #ifdef __linux__ wxString lc_all; @@ -3717,7 +3717,7 @@ bool GUI_App::load_language(wxString language, bool initial) language_info = wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH_UK); app_config->set("language", language_info->CanonicalName.ToUTF8().data()); } - else { + else if (initial) { // bbs supported languages //TODO: use a global one with Preference wxLanguage supported_languages[] {wxLANGUAGE_ENGLISH, wxLANGUAGE_CHINESE_SIMPLIFIED, wxLANGUAGE_GERMAN, wxLANGUAGE_FRENCH, wxLANGUAGE_SPANISH, wxLANGUAGE_SWEDISH, wxLANGUAGE_DUTCH };