diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index fe91d9c18..3e8be07b6 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1609,7 +1609,7 @@ wxWindow *SelectMachineDialog::create_item_checkbox(wxString title, wxWindow *pa checkbox->Layout(); sizer_checkbox->Fit(checkbox); - checkbox->SetToolTip(tooltip); + check->SetToolTip(tooltip); text->SetToolTip(tooltip); @@ -3207,6 +3207,8 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) //reset print status + update_flow_cali_check(obj); + show_status(PrintDialogStatus::PrintStatusInit); reset_ams_material(); @@ -3214,6 +3216,21 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) update_show_status(); } +void SelectMachineDialog::update_flow_cali_check(MachineObject* obj) +{ + auto bed_type = m_plater->get_partplate_list().get_curr_plate()->get_bed_type(true); + auto show_cali_tips = true; + + if (obj && obj->get_printer_arch() == PrinterArch::ARCH_I3) { show_cali_tips = false; } + + if (bed_type == BedType::btPTE) { + set_flow_calibration_state(false, show_cali_tips); + } + else { + set_flow_calibration_state(true, show_cali_tips); + } +} + void SelectMachineDialog::update_ams_check(MachineObject* obj) { if (obj && obj->ams_support_use_ams && obj->has_ams()) { @@ -3606,18 +3623,17 @@ wxImage *SelectMachineDialog::LoadImageFromBlob(const unsigned char *data, int s return NULL; } -void SelectMachineDialog::set_flow_calibration_state(bool state) +void SelectMachineDialog::set_flow_calibration_state(bool state, bool show_tips) { if (!state) { m_checkbox_list["flow_cali"]->SetValue(state); auto tool_tip = _L("Caution to use! Flow calibration on Textured PEI Plate may fail due to the scattered surface."); m_checkbox_list["flow_cali"]->SetToolTip(tool_tip); m_checkbox_list["flow_cali"]->Enable(); - //m_checkbox_state_list["flow_cali"] = state; for (auto win : select_flow->GetWindowChildren()) { win->SetToolTip(tool_tip); } - select_flow->SetToolTip(tool_tip); + //select_flow->SetToolTip(tool_tip); } else { @@ -3630,11 +3646,16 @@ void SelectMachineDialog::set_flow_calibration_state(bool state) } m_checkbox_list["flow_cali"]->Enable(); - //m_checkbox_state_list["flow_cali"] = state; for (auto win : select_flow->GetWindowChildren()) { win->SetToolTip( _L("Automatic flow calibration using Micro Lidar")); } } + + if (!show_tips) { + for (auto win : select_flow->GetWindowChildren()) { + win->SetToolTip(wxEmptyString); + } + } } void SelectMachineDialog::set_default() @@ -3830,11 +3851,12 @@ void SelectMachineDialog::set_default_normal() auto mouse_pos = ClientToScreen(e.GetPosition()); wxPoint rect = item->ClientToScreen(wxPoint(0, 0)); + // update ams data DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); if (!dev_manager) return; MachineObject* obj_ = dev_manager->get_selected_machine(); - + if (obj_ && obj_->is_support_ams_mapping()) { if (m_mapping_popup.IsShown()) return; wxPoint pos = item->ClientToScreen(wxPoint(0, 0)); @@ -3887,13 +3909,10 @@ void SelectMachineDialog::set_default_normal() m_scrollable_view->SetMaxSize(m_scrollable_region->GetSize()); //disable pei bed - auto bed_type = m_plater->get_partplate_list().get_curr_plate()->get_bed_type(true); - if (bed_type == BedType::btPTE) { - set_flow_calibration_state(false); - } - else { - set_flow_calibration_state(true); - } + DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev_manager) return; + MachineObject* obj_ = dev_manager->get_selected_machine(); + update_flow_cali_check(obj_); wxSize screenSize = wxGetDisplaySize(); auto dialogSize = this->GetSize(); diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 4d6c7099c..e45717762 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -432,6 +432,7 @@ public: void update_page_turn_state(bool show); void on_timer(wxTimerEvent& event); void on_selection_changed(wxCommandEvent& event); + void update_flow_cali_check(MachineObject* obj); void Enable_Refresh_Button(bool en); void Enable_Send_Button(bool en); void on_dpi_changed(const wxRect& suggested_rect) override; @@ -442,7 +443,7 @@ public: void update_priner_status_msg(wxString msg, bool is_warning = false); void update_print_status_msg(wxString msg, bool is_warning = false, bool is_printer = true); void update_print_error_info(int code, std::string msg, std::string extra); - void set_flow_calibration_state(bool state); + void set_flow_calibration_state(bool state, bool show_tips = true); bool is_show_timelapse(); bool has_timelapse_warning(); void update_timelapse_enable_status();