From 8f5887735a31cffab94b27d937479bbcb5da487d Mon Sep 17 00:00:00 2001 From: tao wang Date: Mon, 13 Jan 2025 21:34:41 +0800 Subject: [PATCH] ENH:allow fan control when printing jira:[STUDIO-9700] Change-Id: I3637705b8c9dfe1b35766bf35dab2a286ee1e7a1 --- src/slic3r/GUI/Widgets/FanControl.cpp | 37 +++++++++++++++++---------- src/slic3r/GUI/Widgets/FanControl.hpp | 6 +++-- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/slic3r/GUI/Widgets/FanControl.cpp b/src/slic3r/GUI/Widgets/FanControl.cpp index 4bb39e32c..c5c4f38a7 100644 --- a/src/slic3r/GUI/Widgets/FanControl.cpp +++ b/src/slic3r/GUI/Widgets/FanControl.cpp @@ -226,13 +226,20 @@ void FanOperate::set_fan_speeds(int g) Refresh(); } -void FanOperate::add_fan_speeds() +bool FanOperate::check_printing_state() { if (m_obj && m_obj->is_in_printing()) { MessageDialog msg_wingow(nullptr, _L("Changed fan speed during pringing may affect print quality, please choose carefully."), "", wxICON_WARNING | wxCANCEL | wxOK); - if (msg_wingow.ShowModal() == wxID_CANCEL) { - return; - } + msg_wingow.SetButtonLabel(wxID_OK, _L("Change Anyway")); + if (msg_wingow.ShowModal() == wxID_CANCEL) { return false; } + } + return true; +} + +void FanOperate::add_fan_speeds() +{ + if (!check_printing_state()) { + return; } if (m_current_speeds + 1 > m_max_speeds) return; @@ -243,11 +250,8 @@ void FanOperate::add_fan_speeds() void FanOperate::decrease_fan_speeds() { - if (m_obj && m_obj->is_in_printing()) { - MessageDialog msg_wingow(nullptr, _L("Changed fan speed during pringing may affect print quality, please choose carefully."), "", wxICON_WARNING | wxCANCEL | wxOK); - if (msg_wingow.ShowModal() == wxID_CANCEL) { - return; - } + if (!check_printing_state()) { + return; } //turn off @@ -444,13 +448,20 @@ void FanControlNew::command_control_fan() } } -void FanControlNew::on_swith_fan(wxMouseEvent& evt) +bool FanControlNew::check_printing_state() { if (m_obj && m_obj->is_in_printing()) { MessageDialog msg_wingow(nullptr, _L("Changed fan speed during pringing may affect print quality, please choose carefully."), "", wxICON_WARNING | wxCANCEL | wxOK); - if (msg_wingow.ShowModal() == wxID_CANCEL) { - return; - } + msg_wingow.SetButtonLabel(wxID_OK, _L("Change Anyway")); + if (msg_wingow.ShowModal() == wxID_CANCEL) { return false; } + } + return true; +} + +void FanControlNew::on_swith_fan(wxMouseEvent& evt) +{ + if (!check_printing_state()) { + return; } int speed = 0; diff --git a/src/slic3r/GUI/Widgets/FanControl.hpp b/src/slic3r/GUI/Widgets/FanControl.hpp index e0752eaf4..afaf77081 100644 --- a/src/slic3r/GUI/Widgets/FanControl.hpp +++ b/src/slic3r/GUI/Widgets/FanControl.hpp @@ -104,6 +104,7 @@ public: public: void set_fan_speeds(int g); + bool check_printing_state(); void add_fan_speeds(); void decrease_fan_speeds(); private: @@ -157,7 +158,8 @@ public: void update_obj_state(bool stat) { m_update_already = stat; }; void update_fan_data(const AirDuctData& data) { m_fan_data = data; }; void command_control_fan(); - void set_machine_obj(MachineObject* obj); + bool check_printing_state(); + void set_machine_obj(MachineObject *obj); void set_name(wxString name); void set_part_id(int id){m_part_id = id;}; void set_fan_speed(int g); @@ -177,7 +179,7 @@ class FanControlPopupNew : public PopupWindow public: FanControlPopupNew(wxWindow* parent, MachineObject* obj, const AirDuctData& data); ~FanControlPopupNew() {}; - + private: wxBoxSizer* m_sizer_main{ nullptr };