ENH: update Send to print dialog

jira: [STUDIO-11230][STUDIO-11260][STUDIO-11259]
Change-Id: I6fdbeebf2a491f354c122eb35e5858bd6e72591c
This commit is contained in:
xin.zhang 2025-04-02 10:53:33 +08:00 committed by lane.wei
parent 87d6a055b3
commit f3992d3e94
3 changed files with 144 additions and 159 deletions

View File

@ -124,13 +124,11 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
SetBackgroundColour(m_colour_def_color); SetBackgroundColour(m_colour_def_color);
wxBoxSizer* m_scroll_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* m_scroll_sizer = new wxBoxSizer(wxVERTICAL);
wxScrolledWindow* scroll_area = new wxScrolledWindow(this); m_scroll_area = new wxScrolledWindow(this);
scroll_area->SetScrollRate(20, 20); m_scroll_area->SetScrollRate(20, 20);
scroll_area->SetBackgroundColour(m_colour_def_color); m_scroll_area->SetBackgroundColour(m_colour_def_color);
scroll_area->SetMinSize(wxSize(FromDIP(700), FromDIP(600)));
scroll_area->SetMaxSize(wxSize(FromDIP(700), FromDIP(600)));
m_line_top = new wxPanel(scroll_area, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); m_line_top = new wxPanel(m_scroll_area, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
m_line_top->SetBackgroundColour(wxColour(166, 169, 170)); m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
/*mode switch*/ /*mode switch*/
@ -153,7 +151,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
e.Skip(); e.Skip();
});*/ });*/
m_basic_panel = new wxPanel(scroll_area, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); m_basic_panel = new wxPanel(m_scroll_area, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
m_basic_panel->SetBackgroundColour(*wxWHITE); m_basic_panel->SetBackgroundColour(*wxWHITE);
m_basicl_sizer = new wxBoxSizer(wxHORIZONTAL); m_basicl_sizer = new wxBoxSizer(wxHORIZONTAL);
@ -198,8 +196,8 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_rename_text->SetFont(::Label::Head_13); m_rename_text->SetFont(::Label::Head_13);
m_rename_text->SetBackgroundColour(*wxWHITE); m_rename_text->SetBackgroundColour(*wxWHITE);
m_rename_text->SetMaxSize(wxSize(FromDIP(340), -1)); m_rename_text->SetMaxSize(wxSize(FromDIP(340), -1));
rename_editable = new ScalableBitmap(scroll_area, "rename_edit", 20); rename_editable = new ScalableBitmap(m_scroll_area, "rename_edit", 20);
rename_editable_light = new ScalableBitmap(scroll_area, "rename_edit", 20); rename_editable_light = new ScalableBitmap(m_scroll_area, "rename_edit", 20);
m_rename_button = new wxStaticBitmap(m_rename_normal_panel, wxID_ANY, rename_editable->bmp(), wxDefaultPosition, wxSize(FromDIP(20), FromDIP(20)), 0); m_rename_button = new wxStaticBitmap(m_rename_normal_panel, wxID_ANY, rename_editable->bmp(), wxDefaultPosition, wxSize(FromDIP(20), FromDIP(20)), 0);
m_rename_button->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); }); m_rename_button->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
m_rename_button->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); }); m_rename_button->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
@ -258,12 +256,12 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
/*weight & time*/ /*weight & time*/
wxBoxSizer *m_sizer_basic_weight_time = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *m_sizer_basic_weight_time = new wxBoxSizer(wxHORIZONTAL);
print_time = new ScalableBitmap(scroll_area, "print-time", 18); print_time = new ScalableBitmap(m_scroll_area, "print-time", 18);
timeimg = new wxStaticBitmap(m_basic_panel, wxID_ANY, print_time->bmp(), wxDefaultPosition, wxSize(FromDIP(18), FromDIP(18)), 0); timeimg = new wxStaticBitmap(m_basic_panel, wxID_ANY, print_time->bmp(), wxDefaultPosition, wxSize(FromDIP(18), FromDIP(18)), 0);
m_stext_time = new Label(m_basic_panel, wxEmptyString); m_stext_time = new Label(m_basic_panel, wxEmptyString);
m_stext_time->SetFont(Label::Body_13); m_stext_time->SetFont(Label::Body_13);
print_weight = new ScalableBitmap(scroll_area, "print-weight", 18); print_weight = new ScalableBitmap(m_scroll_area, "print-weight", 18);
weightimg = new wxStaticBitmap(m_basic_panel, wxID_ANY, print_weight->bmp(), wxDefaultPosition, wxSize(FromDIP(18), FromDIP(18)), 0); weightimg = new wxStaticBitmap(m_basic_panel, wxID_ANY, print_weight->bmp(), wxDefaultPosition, wxSize(FromDIP(18), FromDIP(18)), 0);
m_stext_weight = new Label(m_basic_panel, wxEmptyString); m_stext_weight = new Label(m_basic_panel, wxEmptyString);
m_stext_weight->SetFont(Label::Body_13); m_stext_weight->SetFont(Label::Body_13);
@ -275,12 +273,12 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
/*last & next page*/ /*last & next page*/
auto last_plate_sizer = new wxBoxSizer(wxVERTICAL); auto last_plate_sizer = new wxBoxSizer(wxVERTICAL);
m_bitmap_last_plate = new wxStaticBitmap(m_basic_panel, wxID_ANY, create_scaled_bitmap("go_last_plate", scroll_area, 25), wxDefaultPosition, wxSize(FromDIP(25), FromDIP(25)), 0); m_bitmap_last_plate = new wxStaticBitmap(m_basic_panel, wxID_ANY, create_scaled_bitmap("go_last_plate", m_scroll_area, 25), wxDefaultPosition, wxSize(FromDIP(25), FromDIP(25)), 0);
m_bitmap_last_plate->Hide(); m_bitmap_last_plate->Hide();
last_plate_sizer->Add(m_bitmap_last_plate, 0, wxALIGN_CENTER, 0); last_plate_sizer->Add(m_bitmap_last_plate, 0, wxALIGN_CENTER, 0);
auto next_plate_sizer = new wxBoxSizer(wxVERTICAL); auto next_plate_sizer = new wxBoxSizer(wxVERTICAL);
m_bitmap_next_plate = new wxStaticBitmap(m_basic_panel, wxID_ANY, create_scaled_bitmap("go_next_plate", scroll_area, 25), wxDefaultPosition, wxSize(FromDIP(25), FromDIP(25)), 0); m_bitmap_next_plate = new wxStaticBitmap(m_basic_panel, wxID_ANY, create_scaled_bitmap("go_next_plate", m_scroll_area, 25), wxDefaultPosition, wxSize(FromDIP(25), FromDIP(25)), 0);
m_bitmap_next_plate->Hide(); m_bitmap_next_plate->Hide();
next_plate_sizer->Add(m_bitmap_next_plate, 0, wxALIGN_CENTER, 0); next_plate_sizer->Add(m_bitmap_next_plate, 0, wxALIGN_CENTER, 0);
@ -312,7 +310,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
printer_staticbox->SetMaxSize(wxSize(FromDIP(338), FromDIP(68))); printer_staticbox->SetMaxSize(wxSize(FromDIP(338), FromDIP(68)));
printer_staticbox->SetBorderColor(wxColour(0xCECECE)); printer_staticbox->SetBorderColor(wxColour(0xCECECE));
m_printer_image = new wxStaticBitmap(printer_staticbox, wxID_ANY, create_scaled_bitmap("printer_preview_BL-P001", scroll_area, 52)); m_printer_image = new wxStaticBitmap(printer_staticbox, wxID_ANY, create_scaled_bitmap("printer_preview_BL-P001", m_scroll_area, 52));
m_printer_image->SetMinSize(wxSize(FromDIP(52), FromDIP(52))); m_printer_image->SetMinSize(wxSize(FromDIP(52), FromDIP(52)));
m_printer_image->SetMaxSize(wxSize(FromDIP(52), FromDIP(52))); m_printer_image->SetMaxSize(wxSize(FromDIP(52), FromDIP(52)));
@ -349,7 +347,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
bed_staticbox->SetMaxSize(wxSize(FromDIP(98), FromDIP(68))); bed_staticbox->SetMaxSize(wxSize(FromDIP(98), FromDIP(68)));
bed_staticbox->SetBorderColor(wxColour(0xCECECE)); bed_staticbox->SetBorderColor(wxColour(0xCECECE));
m_bed_image = new wxStaticBitmap(bed_staticbox, wxID_ANY, create_scaled_bitmap("bed_cool", scroll_area, 32)); m_bed_image = new wxStaticBitmap(bed_staticbox, wxID_ANY, create_scaled_bitmap("bed_cool", m_scroll_area, 32));
m_bed_image->SetBackgroundColour(*wxWHITE); m_bed_image->SetBackgroundColour(*wxWHITE);
m_bed_image->SetMinSize(wxSize(FromDIP(32), FromDIP(32))); m_bed_image->SetMinSize(wxSize(FromDIP(32), FromDIP(32)));
m_bed_image->SetMaxSize(wxSize(FromDIP(32), FromDIP(32))); m_bed_image->SetMaxSize(wxSize(FromDIP(32), FromDIP(32)));
@ -412,21 +410,21 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
/*filaments info*/ /*filaments info*/
wxBoxSizer* sizer_split_filament = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* sizer_split_filament = new wxBoxSizer(wxHORIZONTAL);
auto m_stext_filament_title = new Label(scroll_area, _L("Filament")); auto m_stext_filament_title = new Label(m_scroll_area, _L("Filament"));
m_stext_filament_title->SetFont(::Label::Body_14); m_stext_filament_title->SetFont(::Label::Body_14);
m_stext_filament_title->SetForegroundColour(0x909090); m_stext_filament_title->SetForegroundColour(0x909090);
auto m_split_line_filament = new wxPanel(scroll_area, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); auto m_split_line_filament = new wxPanel(m_scroll_area, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
m_split_line_filament->SetBackgroundColour(0xeeeeee); m_split_line_filament->SetBackgroundColour(0xeeeeee);
m_split_line_filament->SetMinSize(wxSize(-1, 1)); m_split_line_filament->SetMinSize(wxSize(-1, 1));
m_split_line_filament->SetMaxSize(wxSize(-1, 1)); m_split_line_filament->SetMaxSize(wxSize(-1, 1));
m_sizer_autorefill = new wxBoxSizer(wxHORIZONTAL); m_sizer_autorefill = new wxBoxSizer(wxHORIZONTAL);
m_ams_backup_tip = new Label(scroll_area, _L("Auto Refill")); m_ams_backup_tip = new Label(m_scroll_area, _L("Auto Refill"));
m_ams_backup_tip->SetFont(::Label::Head_12); m_ams_backup_tip->SetFont(::Label::Head_12);
m_ams_backup_tip->SetForegroundColour(wxColour(0x00AE42)); m_ams_backup_tip->SetForegroundColour(wxColour(0x00AE42));
m_ams_backup_tip->SetBackgroundColour(*wxWHITE); m_ams_backup_tip->SetBackgroundColour(*wxWHITE);
img_ams_backup = new wxStaticBitmap(scroll_area, wxID_ANY, create_scaled_bitmap("automatic_material_renewal", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16)), 0); img_ams_backup = new wxStaticBitmap(m_scroll_area, wxID_ANY, create_scaled_bitmap("automatic_material_renewal", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16)), 0);
img_ams_backup->SetBackgroundColour(*wxWHITE); img_ams_backup->SetBackgroundColour(*wxWHITE);
m_sizer_autorefill->Add(0, 0, 1, wxEXPAND, 0); m_sizer_autorefill->Add(0, 0, 1, wxEXPAND, 0);
@ -452,7 +450,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
/*filament area*/ /*filament area*/
/*1 extruder*/ /*1 extruder*/
m_filament_panel = new StaticBox(scroll_area); m_filament_panel = new StaticBox(m_scroll_area);
m_filament_panel->SetBackgroundColour(wxColour(0xF8F8F8)); m_filament_panel->SetBackgroundColour(wxColour(0xF8F8F8));
m_filament_panel->SetBorderWidth(0); m_filament_panel->SetBorderWidth(0);
m_filament_panel->SetMinSize(wxSize(FromDIP(637), -1)); m_filament_panel->SetMinSize(wxSize(FromDIP(637), -1));
@ -468,7 +466,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
/*left & right extruder*/ /*left & right extruder*/
m_sizer_filament_2extruder = new wxBoxSizer(wxHORIZONTAL); m_sizer_filament_2extruder = new wxBoxSizer(wxHORIZONTAL);
m_filament_left_panel = new StaticBox(scroll_area); m_filament_left_panel = new StaticBox(m_scroll_area);
m_filament_left_panel->SetBackgroundColour(wxColour(0xF8F8F8)); m_filament_left_panel->SetBackgroundColour(wxColour(0xF8F8F8));
m_filament_left_panel->SetBorderWidth(0); m_filament_left_panel->SetBorderWidth(0);
m_filament_left_panel->SetMinSize(wxSize(FromDIP(315), -1)); m_filament_left_panel->SetMinSize(wxSize(FromDIP(315), -1));
@ -487,7 +485,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_filament_left_panel->SetSizer(m_filament_panel_left_sizer); m_filament_left_panel->SetSizer(m_filament_panel_left_sizer);
m_filament_left_panel->Layout(); m_filament_left_panel->Layout();
m_filament_right_panel = new StaticBox(scroll_area); m_filament_right_panel = new StaticBox(m_scroll_area);
m_filament_right_panel->SetBorderWidth(0); m_filament_right_panel->SetBorderWidth(0);
m_filament_right_panel->SetBackgroundColour(wxColour(0xf8f8f8)); m_filament_right_panel->SetBackgroundColour(wxColour(0xf8f8f8));
m_filament_right_panel->SetMinSize(wxSize(FromDIP(315), -1)); m_filament_right_panel->SetMinSize(wxSize(FromDIP(315), -1));
@ -513,14 +511,14 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_filament_panel->Hide(); m_filament_panel->Hide();
m_statictext_ams_msg = new Label(scroll_area, wxEmptyString); m_statictext_ams_msg = new Label(m_scroll_area, wxEmptyString);
m_statictext_ams_msg->SetMinSize(wxSize(FromDIP(645), -1)); m_statictext_ams_msg->SetMinSize(wxSize(FromDIP(645), -1));
m_statictext_ams_msg->SetMaxSize(wxSize(FromDIP(645), -1)); m_statictext_ams_msg->SetMaxSize(wxSize(FromDIP(645), -1));
m_statictext_ams_msg->SetFont(::Label::Body_13); m_statictext_ams_msg->SetFont(::Label::Body_13);
m_statictext_ams_msg->Hide(); m_statictext_ams_msg->Hide();
/*ams mapping suggestions*/ /*ams mapping suggestions*/
m_link_edit_nozzle = new Label(scroll_area, wxEmptyString); m_link_edit_nozzle = new Label(m_scroll_area, wxEmptyString);
m_link_edit_nozzle->SetMinSize(wxSize(FromDIP(600), -1)); m_link_edit_nozzle->SetMinSize(wxSize(FromDIP(600), -1));
m_link_edit_nozzle->SetMaxSize(wxSize(FromDIP(600), -1)); m_link_edit_nozzle->SetMaxSize(wxSize(FromDIP(600), -1));
m_link_edit_nozzle->SetFont(::Label::Body_13); m_link_edit_nozzle->SetFont(::Label::Body_13);
@ -546,7 +544,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_mapping_sugs_sizer = new wxBoxSizer(wxHORIZONTAL); m_mapping_sugs_sizer = new wxBoxSizer(wxHORIZONTAL);
//auto m_img_mapping_sugs = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("warning", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16))); //auto m_img_mapping_sugs = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("warning", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16)));
auto m_txt_mapping_sugs = new Label(scroll_area, wxEmptyString); auto m_txt_mapping_sugs = new Label(m_scroll_area, wxEmptyString);
m_txt_mapping_sugs->SetFont(::Label::Body_13); m_txt_mapping_sugs->SetFont(::Label::Body_13);
m_txt_mapping_sugs->SetForegroundColour(wxColour(0xFF, 0x6F, 0x00)); m_txt_mapping_sugs->SetForegroundColour(wxColour(0xFF, 0x6F, 0x00));
m_txt_mapping_sugs->SetMinSize(wxSize(FromDIP(580), -1)); m_txt_mapping_sugs->SetMinSize(wxSize(FromDIP(580), -1));
@ -558,7 +556,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_change_filament_times_sizer = new wxBoxSizer(wxHORIZONTAL); m_change_filament_times_sizer = new wxBoxSizer(wxHORIZONTAL);
//auto m_img_change_filament_times = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("warning", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16))); //auto m_img_change_filament_times = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("warning", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16)));
m_txt_change_filament_times = new Label(scroll_area, wxEmptyString); m_txt_change_filament_times = new Label(m_scroll_area, wxEmptyString);
m_txt_change_filament_times->SetFont(::Label::Body_13); m_txt_change_filament_times->SetFont(::Label::Body_13);
m_txt_change_filament_times->SetMinSize(wxSize(FromDIP(580), -1)); m_txt_change_filament_times->SetMinSize(wxSize(FromDIP(580), -1));
m_txt_change_filament_times->SetMaxSize(wxSize(FromDIP(580), -1)); m_txt_change_filament_times->SetMaxSize(wxSize(FromDIP(580), -1));
@ -570,7 +568,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
/*Advanced Options*/ /*Advanced Options*/
wxBoxSizer* sizer_split_options = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* sizer_split_options = new wxBoxSizer(wxHORIZONTAL);
auto m_split_options_line = new wxPanel(scroll_area, wxID_ANY); auto m_split_options_line = new wxPanel(m_scroll_area, wxID_ANY);
m_split_options_line->SetBackgroundColour(0xEEEEEE); m_split_options_line->SetBackgroundColour(0xEEEEEE);
m_split_options_line->SetSize(wxSize(-1, FromDIP(1))); m_split_options_line->SetSize(wxSize(-1, FromDIP(1)));
m_split_options_line->SetMinSize(wxSize(-1, FromDIP(1))); m_split_options_line->SetMinSize(wxSize(-1, FromDIP(1)));
@ -580,46 +578,17 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
wxBoxSizer *sizer_advanced_options_title = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *sizer_advanced_options_title = new wxBoxSizer(wxHORIZONTAL);
m_hyperlink = new wxHyperlinkCtrl(scroll_area, wxID_ANY, _L("Click here if you can't connect to the printer"), m_hyperlink = new wxHyperlinkCtrl(m_scroll_area, wxID_ANY, _L("Click here if you can't connect to the printer"),
wxT("https://wiki.bambulab.com/en/software/bambu-studio/failed-to-connect-printer"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE); wxT("https://wiki.bambulab.com/en/software/bambu-studio/failed-to-connect-printer"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE);
m_hyperlink->SetFont(::Label::Body_12); m_hyperlink->SetFont(::Label::Body_12);
m_advanced_options_title = new Label(scroll_area, _L("Advanced Options"));
m_advanced_options_title->SetFont(::Label::Body_13);
m_advanced_options_title->SetForegroundColour(StateColor::darkModeColorFor(*wxBLACK));
m_advanced_options_icon = new wxStaticBitmap(scroll_area, wxID_ANY, create_scaled_bitmap("advanced_option1", scroll_area, 18), wxDefaultPosition, wxSize(FromDIP(18), FromDIP(18)));
sizer_advanced_options_title->Add(m_hyperlink, 0, wxALIGN_CENTER, 0); sizer_advanced_options_title->Add(m_hyperlink, 0, wxALIGN_CENTER, 0);
sizer_advanced_options_title->Add(0, 0, 1, wxEXPAND, 0); sizer_advanced_options_title->Add(0, 0, 1, wxEXPAND, 0);
sizer_advanced_options_title->Add(m_advanced_options_title, 0, wxALIGN_CENTER, 0);
sizer_advanced_options_title->Add(m_advanced_options_icon, 0, wxALIGN_CENTER, 0);
m_advanced_options_title->Bind(wxEVT_ENTER_WINDOW, [this](auto &e) {SetCursor(wxCURSOR_HAND);}); m_options_other = new wxPanel(m_scroll_area);
m_advanced_options_title->Bind(wxEVT_LEAVE_WINDOW, [this](auto &e) {SetCursor(wxCURSOR_ARROW);});
m_advanced_options_title->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
if (m_print_status == PrintStatusUnsupportedPrinter) {
m_options_other->Hide();
} else {
if (m_options_other->IsShown()) {
m_options_other->Hide();
m_advanced_options_icon->SetBitmap(create_scaled_bitmap("advanced_option1", this, 18));
} else {
m_options_other->Show();
m_advanced_options_icon->SetBitmap(create_scaled_bitmap("advanced_option2", this, 18));
}
}
Layout();
Fit();
});
m_options_other = new wxPanel(scroll_area);
m_sizer_options_timelapse = new wxBoxSizer(wxVERTICAL);
m_sizer_options_other = new wxBoxSizer(wxVERTICAL);
auto option_timelapse = new PrintOption(scroll_area, _L("Timelapse"), wxEmptyString, ops_no_auto, "timelapse"); auto option_timelapse = new PrintOption(m_options_other, _L("Timelapse"), wxEmptyString, ops_no_auto, "timelapse");
auto option_auto_bed_level = new PrintOption( auto option_auto_bed_level = new PrintOption(
m_options_other, _L("Auto Bed Leveling"), m_options_other, _L("Auto Bed Leveling"),
@ -647,13 +616,21 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
}); });
option_use_ams->setValue("on"); option_use_ams->setValue("on");
m_sizer_options_timelapse->Add(option_timelapse, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5));
m_sizer_options_other->Add(option_use_ams, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5));
m_sizer_options_other->Add(option_auto_bed_level, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5));
m_sizer_options_other->Add(option_flow_dynamics_cali, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5));
m_sizer_options_other->Add(option_nozzle_offset_cali_cali, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5));
m_options_other->SetSizer(m_sizer_options_other); m_sizer_options = new wxGridSizer(0, 2, FromDIP(5), FromDIP(40));
m_sizer_options->Add(option_timelapse, 0, wxEXPAND);
m_sizer_options->Add(option_use_ams, 0, wxEXPAND);
m_sizer_options->Add(option_auto_bed_level, 0, wxEXPAND);
m_sizer_options->Add(option_flow_dynamics_cali, 0, wxEXPAND);
m_sizer_options->Add(option_nozzle_offset_cali_cali, 0, wxEXPAND);
m_checkbox_list_order.push_back(option_timelapse);
m_checkbox_list_order.push_back(option_use_ams);
m_checkbox_list_order.push_back(option_auto_bed_level);
m_checkbox_list_order.push_back(option_flow_dynamics_cali);
m_checkbox_list_order.push_back(option_nozzle_offset_cali_cali);
m_options_other->SetSizer(m_sizer_options);
m_options_other->Layout(); m_options_other->Layout();
m_options_other->Fit(); m_options_other->Fit();
@ -663,7 +640,6 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_checkbox_list["flow_cali"] = option_flow_dynamics_cali; m_checkbox_list["flow_cali"] = option_flow_dynamics_cali;
m_checkbox_list["nozzle_offset_cali"] = option_nozzle_offset_cali_cali; m_checkbox_list["nozzle_offset_cali"] = option_nozzle_offset_cali_cali;
option_timelapse->Hide();
option_auto_bed_level->Hide(); option_auto_bed_level->Hide();
option_flow_dynamics_cali->Hide(); option_flow_dynamics_cali->Hide();
option_nozzle_offset_cali_cali->Hide(); option_nozzle_offset_cali_cali->Hide();
@ -829,16 +805,16 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater)
m_scroll_sizer->Add(m_link_edit_nozzle, 0, wxLEFT|wxRIGHT, FromDIP(18)); m_scroll_sizer->Add(m_link_edit_nozzle, 0, wxLEFT|wxRIGHT, FromDIP(18));
m_scroll_sizer->Add(sizer_split_options, 1, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15)); m_scroll_sizer->Add(sizer_split_options, 1, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15));
m_scroll_sizer->Add(sizer_advanced_options_title, 1, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15)); m_scroll_sizer->Add(sizer_advanced_options_title, 1, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15));
m_scroll_sizer->Add(m_sizer_options_timelapse, 0, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15)); m_scroll_sizer->Add(0, 0, 0, wxTOP, FromDIP(10));
m_scroll_sizer->Add(m_options_other, 0, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15)); m_scroll_sizer->Add(m_options_other, 0, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15));
m_scroll_sizer->Add(0, 0, 0, wxTOP, FromDIP(30)); m_scroll_sizer->Add(0, 0, 0, wxTOP, FromDIP(30));
show_print_failed_info(false); show_print_failed_info(false);
scroll_area->SetSizer(m_scroll_sizer); m_scroll_area->SetSizer(m_scroll_sizer);
wxBoxSizer *sizer_main = new wxBoxSizer(wxVERTICAL); wxBoxSizer *sizer_main = new wxBoxSizer(wxVERTICAL);
sizer_main->Add(scroll_area, 1, wxEXPAND, 0); sizer_main->Add(m_scroll_area, 1, wxEXPAND, 0);
sizer_main->Add(m_simplebook, 0, wxALIGN_CENTER, 0); sizer_main->Add(m_simplebook, 0, wxALIGN_CENTER, 0);
sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10)); sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
sizer_main->Add(m_sw_print_failed_info, 0, wxALIGN_CENTER, 0); sizer_main->Add(m_sw_print_failed_info, 0, wxALIGN_CENTER, 0);
@ -970,7 +946,6 @@ void SelectMachineDialog::popup_filament_backup()
void SelectMachineDialog::update_select_layout(MachineObject *obj) void SelectMachineDialog::update_select_layout(MachineObject *obj)
{ {
// reset checkbox // reset checkbox
m_checkbox_list["timelapse"]->Hide();
m_checkbox_list["bed_leveling"]->Hide(); m_checkbox_list["bed_leveling"]->Hide();
m_checkbox_list["flow_cali"]->Hide(); m_checkbox_list["flow_cali"]->Hide();
m_checkbox_list["nozzle_offset_cali"]->Hide(); m_checkbox_list["nozzle_offset_cali"]->Hide();
@ -979,11 +954,12 @@ void SelectMachineDialog::update_select_layout(MachineObject *obj)
AppConfig *config = wxGetApp().app_config; AppConfig *config = wxGetApp().app_config;
if (obj->is_enable_np) { if (obj->is_enable_np) {
m_checkbox_list["bed_leveling"]->update_options(ops_auto); m_checkbox_list["bed_leveling"]->update_options(ops_auto, _L("This checks the flatness of heatbed. Leveling makes extruded height uniform.\n*Automatic mode: Run a "
"leveling check(about 10 seconds). Skip if surface is fine."));
m_checkbox_list["bed_leveling"]->setValue("auto"); m_checkbox_list["bed_leveling"]->setValue("auto");
} }
else { else {
m_checkbox_list["bed_leveling"]->update_options(ops_no_auto); m_checkbox_list["bed_leveling"]->update_options(ops_no_auto, _L("This checks the flatness of heatbed. Leveling makes extruded height uniform."));
if (config && config->get("print", "bed_leveling") == "0") { if (config && config->get("print", "bed_leveling") == "0") {
m_checkbox_list["bed_leveling"]->setValue("off"); m_checkbox_list["bed_leveling"]->setValue("off");
@ -993,18 +969,18 @@ void SelectMachineDialog::update_select_layout(MachineObject *obj)
} }
if (obj->is_support_nozzle_offset_cali) { if (obj->is_support_nozzle_offset_cali) {
m_checkbox_list["nozzle_offset_cali"]->update_options(ops_auto); m_checkbox_list["nozzle_offset_cali"]->update_options(ops_auto, _L("Calibrate nozzle offsets to enhance print quality.\n*Automatic mode: Check for calibration before printing. Skip if unnecessary."));
m_checkbox_list["nozzle_offset_cali"]->setValue("auto"); m_checkbox_list["nozzle_offset_cali"]->setValue("auto");
m_checkbox_list["nozzle_offset_cali"]->Show(); m_checkbox_list["nozzle_offset_cali"]->Show();
} }
if (obj->is_support_flow_calibration) { if (obj->is_support_flow_calibration) {
if (obj->is_support_auto_flow_calibration) { if (obj->is_support_auto_flow_calibration) {
m_checkbox_list["flow_cali"]->update_options(ops_auto); m_checkbox_list["flow_cali"]->update_options(ops_auto, _L("This process determines the dynamic flow values to improve overall print quality.\n*Automatic mode: Skip if the filament was calibrated recently."));
m_checkbox_list["flow_cali"]->setValue("auto"); m_checkbox_list["flow_cali"]->setValue("auto");
} else { } else {
if (can_support_auto_cali()) { if (can_support_auto_cali()) {
m_checkbox_list["flow_cali"]->update_options(ops_no_auto); m_checkbox_list["flow_cali"]->update_options(ops_no_auto, _L("This process determines the dynamic flow values to improve overall print quality."));
if (config && config->get("print", "flow_cali") == "0") { if (config && config->get("print", "flow_cali") == "0") {
m_checkbox_list["flow_cali"]->setValue("off"); m_checkbox_list["flow_cali"]->setValue("off");
} else { } else {
@ -1021,14 +997,6 @@ void SelectMachineDialog::update_select_layout(MachineObject *obj)
m_checkbox_list["flow_cali"]->Show(); m_checkbox_list["flow_cali"]->Show();
} }
update_timelapse_enable_status();
if (config && config->get("print", "timelapse") == "0") {
m_checkbox_list["timelapse"]->setValue("off");
} else {
m_checkbox_list["timelapse"]->setValue("on");
}
if (obj && obj->is_support_auto_leveling) { if (obj && obj->is_support_auto_leveling) {
m_checkbox_list["bed_leveling"]->Show(); m_checkbox_list["bed_leveling"]->Show();
} }
@ -1036,17 +1004,23 @@ void SelectMachineDialog::update_select_layout(MachineObject *obj)
/*STUDIO-9197*/ /*STUDIO-9197*/
if (obj && obj->canEnableTimelapse()) if (obj && obj->canEnableTimelapse())
{ {
m_checkbox_list["timelapse"]->Show(); m_checkbox_list["timelapse"]->Enable();
if (config->get("print", "timelapse") == "1" && !has_timelapse_warning()) {
m_checkbox_list["timelapse"]->setValue("on");
config->set_str("print", "timelapse", "1");
} else {
m_checkbox_list["timelapse"]->setValue("off");
config->set_str("print", "timelapse", "0");
}
} }
else else
{ {
m_checkbox_list["timelapse"]->Hide(); m_checkbox_list["timelapse"]->Disable();
m_checkbox_list["timelapse"]->setValue("off"); m_checkbox_list["timelapse"]->setValue("off");
AppConfig *config = wxGetApp().app_config; config->set_str("print", "timelapse", "0");
if (config)
config->set_str("print", "timelapse", "0");
} }
update_options_layout();
Layout(); Layout();
Fit(); Fit();
} }
@ -1875,8 +1849,6 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
wxString msg_text = _L("Storage needs to be inserted before printing."); wxString msg_text = _L("Storage needs to be inserted before printing.");
update_print_status_msg(msg_text, true, false, true); update_print_status_msg(msg_text, true, false, true);
}else if (status == PrintDialogStatus::PrintStatusUnsupportedPrinter) { }else if (status == PrintDialogStatus::PrintStatusUnsupportedPrinter) {
enable_advanced_option(false);
wxString msg_text; wxString msg_text;
try try
{ {
@ -2444,6 +2416,49 @@ void SelectMachineDialog::EnableEditing(bool enable)
} }
} }
/*content height > FromDIP(650), make the area scrollable*/
/*content height < FromDIP(650), make the area size as the content*/
void SelectMachineDialog::update_scroll_area_size() {
wxSize new_size(FromDIP(700), -1);
int height = m_scroll_area->GetSizer()->CalcMin().GetHeight();
if (height < FromDIP(650)) {
new_size.SetHeight(height);
} else {
new_size.SetHeight(FromDIP(650));
}
if (m_scroll_area->GetSize() != new_size) {
m_scroll_area->SetMaxSize(new_size);
m_scroll_area->SetMinSize(new_size);
Layout();
Fit();
}
}
void SelectMachineDialog::update_options_layout()
{
std::unordered_set<wxWindow*> shown_options;
const wxSizerItemList& children = m_sizer_options->GetChildren();
for (auto item : children) {
if (item && item->IsWindow()) { shown_options.insert(item->GetWindow()); }
}
std::unordered_set<wxWindow *> toshow_options;
for (auto option : m_checkbox_list_order) {
if (option->IsShown()) { toshow_options.insert(option); }
}
/*To show changed, update layout*/
if (shown_options != toshow_options) {
m_sizer_options->Clear();
for (auto option : m_checkbox_list_order) {
if (option->IsShown()) { m_sizer_options->Add(option, 0, wxEXPAND); }
}
}
}
void SelectMachineDialog::Enable_Auto_Refill(bool enable) void SelectMachineDialog::Enable_Auto_Refill(bool enable)
{ {
if (enable) { if (enable) {
@ -3129,17 +3144,8 @@ void SelectMachineDialog::on_timer(wxTimerEvent &event)
Fit(); Fit();
} }
} }
}
void SelectMachineDialog::enable_advanced_option(bool en) update_scroll_area_size();
{
if (en) {
m_advanced_options_title->SetForegroundColour(StateColor::darkModeColorFor(*wxBLACK));
m_advanced_options_icon->SetBitmap(create_scaled_bitmap("advanced_option1", this, 18));
} else {
m_advanced_options_title->SetForegroundColour(StateColor::darkModeColorFor(0x6B6B6B));
m_advanced_options_icon->SetBitmap(create_scaled_bitmap("advanced_option1_disable", this, 18));
}
} }
void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) void SelectMachineDialog::on_selection_changed(wxCommandEvent &event)
@ -3156,8 +3162,6 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event)
m_change_filament_times_sizer->Show(false); m_change_filament_times_sizer->Show(false);
m_txt_change_filament_times->Show(false); m_txt_change_filament_times->Show(false);
enable_advanced_option(true);
auto selection = m_comboBox_printer->GetSelection(); auto selection = m_comboBox_printer->GetSelection();
DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
if (!dev) return; if (!dev) return;
@ -3669,22 +3673,6 @@ bool SelectMachineDialog::can_support_auto_cali()
return true; return true;
} }
void SelectMachineDialog::update_timelapse_enable_status()
{
AppConfig *config = wxGetApp().app_config;
if (!has_timelapse_warning()) {
if (!config || config->get("print", "timelapse") == "0")
m_checkbox_list["timelapse"]->setValue("off");
else
m_checkbox_list["timelapse"]->setValue("on");
m_checkbox_list["timelapse"]->Enable(true);
} else {
m_checkbox_list["timelapse"]->setValue("off");
m_checkbox_list["timelapse"]->Enable(false);
if (config) { config->set_str("print", "timelapse", "0"); }
}
}
void SelectMachineDialog::reset_ams_material() void SelectMachineDialog::reset_ams_material()
{ {
MaterialHash::iterator iter = m_materialList.begin(); MaterialHash::iterator iter = m_materialList.begin();
@ -4597,8 +4585,7 @@ bool SelectMachineDialog::Show(bool show)
{ {
if (show) { if (show) {
EnableEditing(true); EnableEditing(true);
m_options_other->Hide(); m_options_other->Show();
m_advanced_options_icon->SetBitmap(create_scaled_bitmap("advanced_option1", this, 18));
m_refresh_timer->Start(LIST_REFRESH_INTERVAL); m_refresh_timer->Start(LIST_REFRESH_INTERVAL);
} else { } else {
m_refresh_timer->Stop(); m_refresh_timer->Stop();
@ -4812,41 +4799,27 @@ std::string SelectMachineDialog::get_print_status_info(PrintDialogStatus status)
#endif //__WINDOWS__ #endif //__WINDOWS__
Bind(wxEVT_PAINT, &PrintOption::OnPaint, this); Bind(wxEVT_PAINT, &PrintOption::OnPaint, this);
if (tips.IsEmpty()) { SetMinSize(wxSize(-1, FromDIP(60)));
SetMinSize(wxSize(-1, FromDIP(50))); SetMaxSize(wxSize(-1, FromDIP(60)));
SetMaxSize(wxSize(-1, FromDIP(50)));
}
else {
SetMinSize(wxSize(-1, FromDIP(95)));
SetMaxSize(wxSize(-1, FromDIP(95)));
}
m_ops = ops; m_ops = ops;
m_param = param; m_param = param;
SetBackgroundColour(PRINT_OPT_BG_GRAY); SetBackgroundColour(StateColor::darkModeColorFor(*wxWHITE));
wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
wxBoxSizer *top_sizer = new wxBoxSizer(wxHORIZONTAL);
m_printoption_title = new Label(this, title); m_printoption_title = new Label(this, title);
m_printoption_title->SetFont(Label::Head_13); m_printoption_title->SetFont(Label::Body_13);
m_printoption_title->SetBackgroundColour(0xF8F8F8); m_printoption_title->SetBackgroundColour(0xF8F8F8);
m_printoption_title->SetToolTip(tips);
m_printoption_item = new PrintOptionItem(this, m_ops, param); m_printoption_item = new PrintOptionItem(this, m_ops, param);
m_printoption_item->SetToolTip(tips);
top_sizer->Add(m_printoption_title, 0, wxALIGN_CENTER, 0); sizer->Add(m_printoption_title, 0, wxALIGN_LEFT, 0);
top_sizer->Add(0, 0, 1, wxEXPAND, 0); sizer->AddSpacer(FromDIP(5));
top_sizer->Add(m_printoption_item, 0, wxALIGN_CENTER, 0); sizer->Add(m_printoption_item, 0, wxALIGN_LEFT, 0);
m_label = new Label(this, tips);
m_label->SetFont(::Label::Body_13);
m_label->SetForegroundColour(0x6B6B6B);
m_label->SetBackgroundColour(0xF8F8F8);
sizer->Add(top_sizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, FromDIP(12));
sizer->Add(0, 0, 1, wxTOP, FromDIP(4));
sizer->Add(m_label, 1, wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM, FromDIP(12));
SetSizer(sizer); SetSizer(sizer);
Layout(); Layout();
Fit(); Fit();
@ -4889,7 +4862,15 @@ void PrintOption::doRender(wxDC &dc)
void PrintOption::setValue(std::string value) void PrintOption::setValue(std::string value)
{ {
m_printoption_item->setValue(value); m_printoption_item->setValue(value); }
void PrintOption::update_options(std::vector<POItem> ops, const wxString &tips)
{
m_ops = ops;
m_printoption_item->update_options(ops);
if (m_printoption_title->GetToolTipText() != tips) { m_printoption_title->SetToolTip(tips); }
if (m_printoption_item->GetToolTipText() != tips) { m_printoption_item->SetToolTip(tips); }
} }
std::string PrintOption::getValue() std::string PrintOption::getValue()

View File

@ -24,6 +24,8 @@
#include <wx/wrapsizer.h> #include <wx/wrapsizer.h>
#include <wx/srchctrl.h> #include <wx/srchctrl.h>
#include <unordered_map>
#include "boost/bimap/bimap.hpp" #include "boost/bimap/bimap.hpp"
#include "AmsMappingPopup.hpp" #include "AmsMappingPopup.hpp"
#include "ReleaseNote.hpp" #include "ReleaseNote.hpp"
@ -252,14 +254,10 @@ public:
std::string m_param; std::string m_param;
std::vector<POItem> m_ops; std::vector<POItem> m_ops;
Label* m_label{nullptr};
Label* m_printoption_title{nullptr}; Label* m_printoption_title{nullptr};
PrintOptionItem* m_printoption_item{nullptr}; PrintOptionItem* m_printoption_item{nullptr};
void setValue(std::string value); void setValue(std::string value);
void update_options(std::vector<POItem> ops){ void update_options(std::vector<POItem> ops, const wxString &tips);
m_ops = ops;
m_printoption_item->update_options(ops);
};
std::string getValue(); std::string getValue();
int getValueInt(); int getValueInt();
}; };
@ -338,8 +336,10 @@ private:
StateColor m_btn_bg_enable; StateColor m_btn_bg_enable;
Label* m_text_bed_type; Label* m_text_bed_type;
std::unordered_map<string, PrintOption*> m_checkbox_list;
std::list<PrintOption*> m_checkbox_list_order;
std::shared_ptr<int> m_token = std::make_shared<int>(0); std::shared_ptr<int> m_token = std::make_shared<int>(0);
std::map<std::string, PrintOption*> m_checkbox_list;
wxString m_ams_tooltip; wxString m_ams_tooltip;
wxString m_ams_tooltip_ext; wxString m_ams_tooltip_ext;
std::vector<wxString> m_bedtype_list; std::vector<wxString> m_bedtype_list;
@ -371,8 +371,7 @@ protected:
MaterialHash m_materialList; MaterialHash m_materialList;
Plater * m_plater{nullptr}; Plater * m_plater{nullptr};
wxPanel * m_options_other {nullptr}; wxPanel * m_options_other {nullptr};
wxBoxSizer* m_sizer_options_timelapse{ nullptr }; wxGridSizer* m_sizer_options{nullptr};
wxBoxSizer* m_sizer_options_other{ nullptr };
wxBoxSizer* m_sizer_thumbnail{ nullptr }; wxBoxSizer* m_sizer_thumbnail{ nullptr };
wxBoxSizer* m_basicl_sizer{ nullptr }; wxBoxSizer* m_basicl_sizer{ nullptr };
@ -396,6 +395,9 @@ protected:
wxPanel* m_panel_sending{nullptr}; wxPanel* m_panel_sending{nullptr};
wxPanel* m_panel_prepare{nullptr}; wxPanel* m_panel_prepare{nullptr};
wxPanel* m_panel_finish{nullptr}; wxPanel* m_panel_finish{nullptr};
wxScrolledWindow* m_scroll_area{nullptr};
wxPanel* m_line_top{ nullptr }; wxPanel* m_line_top{ nullptr };
Label* m_link_edit_nozzle{ nullptr }; Label* m_link_edit_nozzle{ nullptr };
Label* m_st_txt_error_code{nullptr}; Label* m_st_txt_error_code{nullptr};
@ -413,7 +415,6 @@ protected:
Label* m_txt_change_filament_times{ nullptr }; Label* m_txt_change_filament_times{ nullptr };
Label* m_text_printer_msg{ nullptr }; Label* m_text_printer_msg{ nullptr };
Label* m_text_printer_msg_tips{ nullptr }; Label* m_text_printer_msg_tips{ nullptr };
Label* m_advanced_options_title{ nullptr };
wxStaticText* m_staticText_bed_title{ nullptr }; wxStaticText* m_staticText_bed_title{ nullptr };
wxStaticText* m_stext_sending{ nullptr }; wxStaticText* m_stext_sending{ nullptr };
wxStaticText* m_statictext_finish{nullptr}; wxStaticText* m_statictext_finish{nullptr};
@ -422,7 +423,6 @@ protected:
std::shared_ptr<PrintJob> m_print_job; std::shared_ptr<PrintJob> m_print_job;
wxScrolledWindow* m_sw_print_failed_info{nullptr}; wxScrolledWindow* m_sw_print_failed_info{nullptr};
wxHyperlinkCtrl* m_hyperlink{nullptr}; wxHyperlinkCtrl* m_hyperlink{nullptr};
wxStaticBitmap * m_advanced_options_icon{nullptr};
ScalableBitmap * rename_editable{nullptr}; ScalableBitmap * rename_editable{nullptr};
ScalableBitmap * rename_editable_light{nullptr}; ScalableBitmap * rename_editable_light{nullptr};
wxStaticBitmap * timeimg{nullptr}; wxStaticBitmap * timeimg{nullptr};
@ -507,7 +507,6 @@ public:
void set_default_from_sdcard(); void set_default_from_sdcard();
void update_page_turn_state(bool show); void update_page_turn_state(bool show);
void on_timer(wxTimerEvent& event); void on_timer(wxTimerEvent& event);
void enable_advanced_option(bool en);
void on_selection_changed(wxCommandEvent &event); void on_selection_changed(wxCommandEvent &event);
void update_flow_cali_check(MachineObject* obj); void update_flow_cali_check(MachineObject* obj);
void Enable_Refresh_Button(bool en); void Enable_Refresh_Button(bool en);
@ -523,7 +522,6 @@ public:
void update_print_error_info(int code, std::string msg, std::string extra); void update_print_error_info(int code, std::string msg, std::string extra);
void set_flow_calibration_state(bool state, bool show_tips = true); void set_flow_calibration_state(bool state, bool show_tips = true);
bool has_timelapse_warning(); bool has_timelapse_warning();
void update_timelapse_enable_status();
bool can_support_auto_cali(); bool can_support_auto_cali();
bool is_same_printer_model(); bool is_same_printer_model();
bool is_blocking_printing(MachineObject* obj_); bool is_blocking_printing(MachineObject* obj_);
@ -554,6 +552,12 @@ public:
private: private:
void EnableEditing(bool enable); void EnableEditing(bool enable);
/* update scroll area size*/
void update_scroll_area_size();
/* update option area*/
void update_options_layout();
/*go check*/ /*go check*/
bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); }; bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); };
bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); }; bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); };

View File

@ -126,13 +126,13 @@ void SyncAmsInfoDialog::update_select_layout(MachineObject *obj)
if (obj->is_enable_np) { if (obj->is_enable_np) {
m_checkbox_list["nozzle_offset_cali"]->Show(); m_checkbox_list["nozzle_offset_cali"]->Show();
m_checkbox_list["nozzle_offset_cali"]->update_options(ops_auto); m_checkbox_list["nozzle_offset_cali"]->update_options(ops_auto, wxEmptyString);
m_checkbox_list["bed_leveling"]->update_options(ops_auto); m_checkbox_list["bed_leveling"]->update_options(ops_auto, wxEmptyString);
m_checkbox_list["nozzle_offset_cali"]->setValue("auto"); m_checkbox_list["nozzle_offset_cali"]->setValue("auto");
m_checkbox_list["bed_leveling"]->setValue("auto"); m_checkbox_list["bed_leveling"]->setValue("auto");
} else { } else {
m_checkbox_list["bed_leveling"]->update_options(ops_no_auto); m_checkbox_list["bed_leveling"]->update_options(ops_no_auto, wxEmptyString);
if (config && config->get("print", "bed_leveling") == "0") { if (config && config->get("print", "bed_leveling") == "0") {
m_checkbox_list["bed_leveling"]->setValue("off"); m_checkbox_list["bed_leveling"]->setValue("off");