FIX: update the extruder panel when object changed

jira: [STUDIO-10050]
Change-Id: I4eb12f3cdecf2a099a9b0773c73a48a8aa3713b6
This commit is contained in:
xin.zhang 2025-01-22 16:50:27 +08:00 committed by lane.wei
parent 851dd67082
commit ca85009945
2 changed files with 13 additions and 3 deletions

View File

@ -2824,19 +2824,24 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
}
/*current*/
if (obj->flag_update_nozzle) {
/*update when extder position changed or the machine changed*/
if (obj->flag_update_nozzle || (m_nozzle_btn_panel->GetClientData() != obj))
{
if (obj->m_extder_data.current_extder_id == 0xf) {
m_extruderImage[select_index]->setExtruderUsed("");
m_nozzle_btn_panel->updateState("");
} else if (obj->m_extder_data.current_extder_id == MAIN_NOZZLE_ID) {
}
else if (obj->m_extder_data.current_extder_id == MAIN_NOZZLE_ID) {
m_extruderImage[select_index]->setExtruderUsed("right");
m_nozzle_btn_panel->updateState("right");
} else if (obj->m_extder_data.current_extder_id == DEPUTY_NOZZLE_ID) {
}
else if (obj->m_extder_data.current_extder_id == DEPUTY_NOZZLE_ID) {
m_extruderImage[select_index]->setExtruderUsed("left");
m_nozzle_btn_panel->updateState("left");
}
obj->flag_update_nozzle = false;
m_nozzle_btn_panel->SetClientData(obj);
}
/*enable status*/

View File

@ -57,11 +57,16 @@ public:
bool switch_right{false};
bool is_enable {true};
void* client_data = nullptr;/*MachineObject* in StatusPanel*/
public:
void Enable();
void Disable();
bool IsEnabled(){return is_enable;};
void SetClientData(void* data) { client_data = data; };
void* GetClientData() { return client_data; };
void SetAutoDisableWhenSwitch() { auto_disable_when_switch = true; };
protected: