ENH:optimize the popup position of the fan control dialog
Change-Id: I98212c2860dfec955072c82710c8dee31866fd1d
This commit is contained in:
parent
7b0bfa8229
commit
b3575b47d1
|
@ -1178,7 +1178,7 @@ void StatusPanel::update_camera_state(MachineObject* obj)
|
||||||
|
|
||||||
StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxString &name)
|
StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxString &name)
|
||||||
: StatusBasePanel(parent, id, pos, size, style)
|
: StatusBasePanel(parent, id, pos, size, style)
|
||||||
, m_fan_control_popup(FanControlPopup(this))
|
, m_fan_control_popup(new FanControlPopup(this))
|
||||||
{
|
{
|
||||||
create_tasklist_info();
|
create_tasklist_info();
|
||||||
update_tasklist_info();
|
update_tasklist_info();
|
||||||
|
@ -1777,7 +1777,9 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
|
||||||
int speed = round(obj->cooling_fan_speed / float(25.5));
|
int speed = round(obj->cooling_fan_speed / float(25.5));
|
||||||
m_switch_nozzle_fan->SetValue(speed > 0 ? true : false);
|
m_switch_nozzle_fan->SetValue(speed > 0 ? true : false);
|
||||||
m_switch_nozzle_fan->setFanValue(speed * 10);
|
m_switch_nozzle_fan->setFanValue(speed * 10);
|
||||||
m_fan_control_popup.update_fan_data(MachineObject::FanType::COOLING_FAN, obj);
|
if (m_fan_control_popup) {
|
||||||
|
m_fan_control_popup->update_fan_data(MachineObject::FanType::COOLING_FAN, obj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// printing fan
|
// printing fan
|
||||||
|
@ -1787,7 +1789,9 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
|
||||||
int speed = round(obj->big_fan1_speed / float(25.5));
|
int speed = round(obj->big_fan1_speed / float(25.5));
|
||||||
m_switch_printing_fan->SetValue(speed > 0 ? true : false);
|
m_switch_printing_fan->SetValue(speed > 0 ? true : false);
|
||||||
m_switch_printing_fan->setFanValue(speed * 10);
|
m_switch_printing_fan->setFanValue(speed * 10);
|
||||||
m_fan_control_popup.update_fan_data(MachineObject::FanType::BIG_COOLING_FAN, obj);
|
if (m_fan_control_popup) {
|
||||||
|
m_fan_control_popup->update_fan_data(MachineObject::FanType::BIG_COOLING_FAN, obj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// cham fan
|
// cham fan
|
||||||
|
@ -1797,7 +1801,9 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
|
||||||
int speed = round(obj->big_fan2_speed / float(25.5));
|
int speed = round(obj->big_fan2_speed / float(25.5));
|
||||||
m_switch_cham_fan->SetValue(speed > 0 ? true : false);
|
m_switch_cham_fan->SetValue(speed > 0 ? true : false);
|
||||||
m_switch_cham_fan->setFanValue(speed * 10);
|
m_switch_cham_fan->setFanValue(speed * 10);
|
||||||
m_fan_control_popup.update_fan_data(MachineObject::FanType::CHAMBER_FAN, obj);
|
if (m_fan_control_popup) {
|
||||||
|
m_fan_control_popup->update_fan_data(MachineObject::FanType::CHAMBER_FAN, obj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool light_on = obj->chamber_light != MachineObject::LIGHT_EFFECT::LIGHT_EFFECT_OFF;
|
bool light_on = obj->chamber_light != MachineObject::LIGHT_EFFECT::LIGHT_EFFECT_OFF;
|
||||||
|
@ -2738,10 +2744,28 @@ void StatusPanel::on_printing_fan_switch(wxCommandEvent &event)
|
||||||
|
|
||||||
void StatusPanel::on_nozzle_fan_switch(wxCommandEvent &event)
|
void StatusPanel::on_nozzle_fan_switch(wxCommandEvent &event)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
m_fan_control_popup->Destroy();
|
||||||
|
m_fan_control_popup = new FanControlPopup(this);
|
||||||
auto pos = m_switch_nozzle_fan->GetScreenPosition();
|
auto pos = m_switch_nozzle_fan->GetScreenPosition();
|
||||||
pos.y = pos.y + m_switch_nozzle_fan->GetSize().y;
|
pos.y = pos.y + m_switch_nozzle_fan->GetSize().y;
|
||||||
m_fan_control_popup.SetPosition(pos);
|
|
||||||
m_fan_control_popup.Popup();
|
|
||||||
|
|
||||||
|
int display_idx = wxDisplay::GetFromWindow(this);
|
||||||
|
auto display = wxDisplay(display_idx).GetClientArea();
|
||||||
|
|
||||||
|
|
||||||
|
wxSize screenSize = wxSize(display.GetWidth(), display.GetHeight());
|
||||||
|
auto fan_popup_size = m_fan_control_popup->GetSize();
|
||||||
|
|
||||||
|
if (screenSize.y - fan_popup_size.y < FromDIP(300)) {
|
||||||
|
pos.x += FromDIP(50);
|
||||||
|
pos.y = (screenSize.y - fan_popup_size.y) / 2;
|
||||||
|
}
|
||||||
|
m_fan_control_popup->SetPosition(pos);
|
||||||
|
m_fan_control_popup->Popup();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -273,7 +273,7 @@ protected:
|
||||||
SecondaryCheckDialog* abort_dlg = nullptr;
|
SecondaryCheckDialog* abort_dlg = nullptr;
|
||||||
SecondaryCheckDialog* ctrl_e_hint_dlg = nullptr;
|
SecondaryCheckDialog* ctrl_e_hint_dlg = nullptr;
|
||||||
SecondaryCheckDialog* sdcard_hint_dlg = nullptr;
|
SecondaryCheckDialog* sdcard_hint_dlg = nullptr;
|
||||||
FanControlPopup m_fan_control_popup{nullptr};
|
FanControlPopup* m_fan_control_popup{nullptr};
|
||||||
|
|
||||||
wxString m_request_url;
|
wxString m_request_url;
|
||||||
bool m_start_loading_thumbnail = false;
|
bool m_start_loading_thumbnail = false;
|
||||||
|
|
Loading…
Reference in New Issue