Merge branch '2.2.3' into dev_upgrade_alves

This commit is contained in:
alves
2026-01-21 16:46:19 +08:00
5 changed files with 1442 additions and 3625 deletions
File diff suppressed because it is too large Load Diff
+7 -49
View File
@@ -1747,8 +1747,8 @@ wxBoxSizer* MainFrame::create_side_tools()
{ {
SidePopup* p = new SidePopup(this); SidePopup* p = new SidePopup(this);
if (wxGetApp().preset_bundle // if (wxGetApp().preset_bundle && !wxGetApp().preset_bundle->is_bbl_vendor())
&& !wxGetApp().preset_bundle->is_bbl_vendor()) { if (0) {
// ThirdParty Buttons // ThirdParty Buttons
SideButton* export_gcode_btn = new SideButton(p, _L("Export G-code file"), ""); SideButton* export_gcode_btn = new SideButton(p, _L("Export G-code file"), "");
export_gcode_btn->SetCornerRadius(0); export_gcode_btn->SetCornerRadius(0);
@@ -1775,15 +1775,10 @@ wxBoxSizer* MainFrame::create_side_tools()
p->append_button(send_gcode_btn); p->append_button(send_gcode_btn);
p->append_button(export_gcode_btn); p->append_button(export_gcode_btn);
} } else {
else { SideButton* print_plate_btn = new SideButton(p, _L("Print"), "");
//Snapmaker Orca Buttons
SideButton* print_plate_btn = new SideButton(p, _L("Print plate"), "");
print_plate_btn->SetCornerRadius(0); print_plate_btn->SetCornerRadius(0);
SideButton* send_to_printer_btn = new SideButton(p, _L("Send"), "");
send_to_printer_btn->SetCornerRadius(0);
SideButton* export_sliced_file_btn = new SideButton(p, _L("Export plate sliced file"), ""); SideButton* export_sliced_file_btn = new SideButton(p, _L("Export plate sliced file"), "");
export_sliced_file_btn->SetCornerRadius(0); export_sliced_file_btn->SetCornerRadius(0);
@@ -1791,39 +1786,8 @@ wxBoxSizer* MainFrame::create_side_tools()
export_all_sliced_file_btn->SetCornerRadius(0); export_all_sliced_file_btn->SetCornerRadius(0);
print_plate_btn->Bind(wxEVT_BUTTON, [this, p](wxCommandEvent&) { print_plate_btn->Bind(wxEVT_BUTTON, [this, p](wxCommandEvent&) {
m_print_btn->SetLabel(_L("Print plate")); m_print_btn->SetLabel(_L("Print"));
m_print_select = ePrintPlate; m_print_select = eSendGcode;
m_print_enable = get_enable_print_status();
m_print_btn->Enable(m_print_enable);
this->Layout();
p->Dismiss();
});
SideButton* print_all_btn = new SideButton(p, _L("Print all"), "");
print_all_btn->SetCornerRadius(0);
print_all_btn->Bind(wxEVT_BUTTON, [this, p](wxCommandEvent&) {
m_print_btn->SetLabel(_L("Print all"));
m_print_select = ePrintAll;
m_print_enable = get_enable_print_status();
m_print_btn->Enable(m_print_enable);
this->Layout();
p->Dismiss();
});
send_to_printer_btn->Bind(wxEVT_BUTTON, [this, p](wxCommandEvent&) {
m_print_btn->SetLabel(_L("Send"));
m_print_select = eSendToPrinter;
m_print_enable = get_enable_print_status();
m_print_btn->Enable(m_print_enable);
this->Layout();
p->Dismiss();
});
SideButton* send_to_printer_all_btn = new SideButton(p, _L("Send all"), "");
send_to_printer_all_btn->SetCornerRadius(0);
send_to_printer_all_btn->Bind(wxEVT_BUTTON, [this, p](wxCommandEvent&) {
m_print_btn->SetLabel(_L("Send all"));
m_print_select = eSendToPrinterAll;
m_print_enable = get_enable_print_status(); m_print_enable = get_enable_print_status();
m_print_btn->Enable(m_print_enable); m_print_btn->Enable(m_print_enable);
this->Layout(); this->Layout();
@@ -1867,13 +1831,7 @@ wxBoxSizer* MainFrame::create_side_tools()
} }
p->append_button(print_plate_btn); p->append_button(print_plate_btn);
if (support_print_all) {
p->append_button(print_all_btn);
}
if (support_send) {
p->append_button(send_to_printer_btn);
p->append_button(send_to_printer_all_btn);
}
if (enable_multi_machine) { if (enable_multi_machine) {
SideButton* print_multi_machine_btn = new SideButton(p, _L("Send to Multi-device"), ""); SideButton* print_multi_machine_btn = new SideButton(p, _L("Send to Multi-device"), "");
print_multi_machine_btn->SetCornerRadius(0); print_multi_machine_btn->SetCornerRadius(0);
+2 -2
View File
@@ -4948,8 +4948,8 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
if (is_snapmaker_u1) { if (is_snapmaker_u1) {
if (q->get_notification_manager()) { if (q->get_notification_manager()) {
std::string warning_text = _u8L("Warning: Printing by object with caution. This function may cause the print head to collide with printed parts during switching."); wxString warning_text = _L("Printing by object with caution. This function may cause the print head to collide with printed parts during switching.");
q->get_notification_manager()->push_plater_error_notification(warning_text); q->get_notification_manager()->push_plater_error_notification(warning_text.ToStdString());
} }
} }
} }
+4 -4
View File
@@ -1567,16 +1567,16 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
if (is_snapmaker_u1) { if (is_snapmaker_u1) {
// Show red warning notification // Show red warning notification
if (wxGetApp().plater() && wxGetApp().plater()->get_notification_manager()) { if (wxGetApp().plater() && wxGetApp().plater()->get_notification_manager()) {
std::string warning_text = _u8L("Warning: Printing by object with caution. This function may cause the print head to collide with printed parts during switching."); wxString warning_text = _L("Printing by object with caution. This function may cause the print head to collide with printed parts during switching.");
wxGetApp().plater()->get_notification_manager()->push_plater_error_notification(warning_text); wxGetApp().plater()->get_notification_manager()->push_plater_error_notification(warning_text.ToStdString());
} }
} }
} }
} else { } else {
// Clear warning when switching away from ByObject // Clear warning when switching away from ByObject
if (wxGetApp().plater() && wxGetApp().plater()->get_notification_manager()) { if (wxGetApp().plater() && wxGetApp().plater()->get_notification_manager()) {
std::string warning_text = _u8L("Warning: Printing by object with caution. This function may cause the print head to collide with printed parts during switching."); wxString warning_text = _L("Printing by object with caution. This function may cause the print head to collide with printed parts during switching.");
wxGetApp().plater()->get_notification_manager()->close_plater_error_notification(warning_text); wxGetApp().plater()->get_notification_manager()->close_plater_error_notification(warning_text.ToStdString());
} }
} }
} }
+12
View File
@@ -1056,6 +1056,18 @@ int GuideFrame::LoadProfileData()
} }
loaded_vendors.insert(PresetBundle::ORCA_FILAMENT_LIBRARY); loaded_vendors.insert(PresetBundle::ORCA_FILAMENT_LIBRARY);
// Load Snapmaker vendor first to ensure it appears at the top of the machine list
auto sm_bundle_name = boost::filesystem::path(PresetBundle::SM_BUNDLE).replace_extension(".json");
if (boost::filesystem::exists(vendor_dir / sm_bundle_name)) {
LoadProfileFamily(PresetBundle::SM_BUNDLE, (vendor_dir / sm_bundle_name).string());
loaded_vendors.insert(PresetBundle::SM_BUNDLE);
} else if (boost::filesystem::exists(rsrc_vendor_dir / sm_bundle_name)) {
LoadProfileFamily(PresetBundle::SM_BUNDLE, (rsrc_vendor_dir / sm_bundle_name).string());
loaded_vendors.insert(PresetBundle::SM_BUNDLE);
}
if (m_destroy)
return 0;
//load custom bundle from user data path //load custom bundle from user data path
boost::filesystem::directory_iterator endIter; boost::filesystem::directory_iterator endIter;
for (boost::filesystem::directory_iterator iter(vendor_dir); iter != endIter; iter++) { for (boost::filesystem::directory_iterator iter(vendor_dir); iter != endIter; iter++) {