FIX: hide fan when device not in fdm

JIRA: none

Change-Id: I14a6e01b4e0950ca1bc3c805fe00313cfd7caf06
(cherry picked from commit c12b4f13911a7f6057eced54dba9e41cf75985ea)
This commit is contained in:
Kunlong Ma
2025-01-12 17:43:22 +08:00
committed by Noisyfox
parent 632281fcc0
commit 9e16287b21
5 changed files with 27 additions and 10 deletions

View File

@@ -5895,7 +5895,8 @@ void MachineObject::parse_new_info(json print)
}
if (device.contains("type")) {
int type = device["type"]; //FDM:1<<0 Laser:1<< Cut:1<<2
int type = device["type"].get<int>(); // FDM:1<<0 Laser:1<< Cut:1<<2
is_fdm = type & 1;
}
if (device.contains("bed_temp")) {

View File

@@ -1027,6 +1027,9 @@ public:
bool is_makeworld_subtask();
/* device type */
bool is_fdm{ true };
inline bool is_fdm_type() const { return is_fdm; }
int m_plate_index { -1 };
std::string m_gcode_file;

View File

@@ -2888,12 +2888,21 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
// update extruder icon
update_extruder_status(obj);
bool is_suppt_part_fun = true;
bool is_suppt_aux_fun = obj->is_support_aux_fan;
bool is_suppt_cham_fun = obj->is_support_chamber_fan;
if (m_fan_control_popup) {
m_fan_control_popup->update_fan_data(obj);
if (obj->is_fdm_type()) {
if (!m_fan_panel->IsShown())
m_fan_panel->Show();
bool is_suppt_part_fun = true;
bool is_suppt_aux_fun = obj->is_support_aux_fan;
bool is_suppt_cham_fun = obj->is_support_chamber_fan;
if (m_fan_control_popup) { m_fan_control_popup->update_fan_data(obj); }
} else {
if (m_fan_panel->IsShown()) {
m_fan_panel->Hide();
}
if (m_fan_control_popup && m_fan_control_popup->Show())
m_fan_control_popup->Hide();
}
//update cham fan
/*other*/

View File

@@ -563,8 +563,8 @@ void FanControlNew::post_event()
Description:FanControlPopupNew
**************************************************/
static void nop_deleter_fan_control_popup(FanControlPopupNew *) {}
FanControlPopupNew::FanControlPopupNew(wxWindow* parent, MachineObject* obj,AirDuctData data)
:PopupWindow(parent, wxBORDER_NONE)
FanControlPopupNew::FanControlPopupNew(wxWindow* parent, MachineObject* obj, const AirDuctData& data)
: PopupWindow(parent, wxBORDER_NONE)
{
SetBackgroundColour(*wxWHITE);
init_names();
@@ -573,8 +573,12 @@ FanControlPopupNew::FanControlPopupNew(wxWindow* parent, MachineObject* obj,AirD
m_obj = obj;
m_sizer_main = new wxBoxSizer(wxVERTICAL);
int part_size = data.parts.size();
int grid_column = part_size > 1 ? 2 : 1;
m_radio_btn_sizer = new wxGridSizer(0, 2, FromDIP(3), FromDIP(3));
m_sizer_fanControl = new wxGridSizer(0, 2, FromDIP(3), FromDIP(10));
m_sizer_fanControl = new wxGridSizer(0, grid_column, FromDIP(3), FromDIP(10));
m_mode_sizer = new wxBoxSizer(wxHORIZONTAL);

View File

@@ -175,7 +175,7 @@ public:
class FanControlPopupNew : public PopupWindow
{
public:
FanControlPopupNew(wxWindow* parent, MachineObject* obj, AirDuctData data);
FanControlPopupNew(wxWindow* parent, MachineObject* obj, const AirDuctData& data);
~FanControlPopupNew() {};