From dc8602854ba7d9ed0573a72093bd2ca732980882 Mon Sep 17 00:00:00 2001 From: tao wang Date: Sun, 18 Feb 2024 16:00:38 +0800 Subject: [PATCH] ENH:display the current humidity of AMS jira:[ENH] Change-Id: I98bdd6d70cd173ed640f0d96692fcb6836416bb8 --- src/slic3r/GUI/AmsMappingPopup.cpp | 12 ++++++------ src/slic3r/GUI/Widgets/AMSControl.cpp | 14 ++++++++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/AmsMappingPopup.cpp b/src/slic3r/GUI/AmsMappingPopup.cpp index c35bdddac..3ce91fdf2 100644 --- a/src/slic3r/GUI/AmsMappingPopup.cpp +++ b/src/slic3r/GUI/AmsMappingPopup.cpp @@ -805,13 +805,13 @@ AmsHumidityTipPopup::AmsHumidityTipPopup(wxWindow* parent) wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); - close_img = ScalableBitmap(this, "hum_popup_close", FromDIP(24)); + close_img = ScalableBitmap(this, "hum_popup_close", 24); m_staticText = new Label(this, _L("Current Cabin humidity")); m_staticText->SetFont(::Label::Head_24); humidity_level_list = new AmsHumidityLevelList(this); - curr_humidity_img = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("hum_level1_light", this, FromDIP(132)), wxDefaultPosition, wxSize(FromDIP(132), FromDIP(132)), 0); + curr_humidity_img = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("hum_level1_light", this, 132), wxDefaultPosition, wxSize(FromDIP(132), FromDIP(132)), 0); m_staticText_note = new Label(this, _L("Please change the desiccant when it is too wet. The indicator may not represent accurately in following cases : when the lid is open or the desiccant pack is changed. it take hours to absorb the moisture, low temperatures also slow down the process.")); m_staticText_note->SetMinSize(wxSize(FromDIP(680), -1)); @@ -876,7 +876,7 @@ void AmsHumidityTipPopup::set_humidity_level(int level) std::string mode_string = wxGetApp().dark_mode()?"_dark":"_light"; - curr_humidity_img->SetBitmap(create_scaled_bitmap("hum_level" + std::to_string(current_humidity_level) + mode_string, this, FromDIP(132))); + curr_humidity_img->SetBitmap(create_scaled_bitmap("hum_level" + std::to_string(current_humidity_level) + mode_string, this, 132)); curr_humidity_img->Refresh(); curr_humidity_img->Update(); } @@ -1598,14 +1598,14 @@ AmsHumidityLevelList::AmsHumidityLevelList(wxWindow* parent) SetMaxSize(wxSize(FromDIP(680), FromDIP(104))); SetBackgroundColour(*wxWHITE); - background_img = ScalableBitmap(this, "humidity_list_background", FromDIP(104)); + background_img = ScalableBitmap(this, "humidity_list_background", 104); for (int i = 1; i <= 5; i++) { - hum_level_img_light.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_light"), FromDIP(54))); + hum_level_img_light.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_light"), 54)); } for (int i = 1; i <= 5; i++) { - hum_level_img_dark.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_dark"), FromDIP(54))); + hum_level_img_dark.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_dark"), 54)); } Bind(wxEVT_PAINT, &AmsHumidityLevelList::paintEvent, this); diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 94a183bf6..730296afa 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -1389,11 +1389,11 @@ AMSRoad::AMSRoad(wxWindow *parent, wxWindowID id, Caninfo info, int canindex, in } for (int i = 1; i <= 5; i++) { - ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_light", FromDIP(32))); + ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_light", 32)); } for (int i = 1; i <= 5; i++) { - ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_dark", FromDIP(32))); + ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_dark", 32)); } create(parent, id, pos, size); @@ -1573,7 +1573,7 @@ void AMSRoad::doRender(wxDC &dc) if (wxGetApp().dark_mode()) { hum_index += 5; } - dc.DrawBitmap(ams_humidity_img[hum_index].bmp(), wxPoint(size.x - FromDIP(28), size.y - FromDIP(35))); + dc.DrawBitmap(ams_humidity_img[hum_index].bmp(), wxPoint(size.x - FromDIP(33), size.y - FromDIP(33))); } else { //to do ... @@ -2896,11 +2896,17 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons }); Bind(EVT_AMS_SHOW_HUMIDITY_TIPS, [this](wxCommandEvent& evt) { + wxPoint img_pos = ClientToScreen(wxPoint(0, 0)); wxPoint popup_pos(img_pos.x - m_Humidity_tip_popup.GetSize().GetWidth() + FromDIP(150), img_pos.y - FromDIP(80)); m_Humidity_tip_popup.Position(popup_pos, wxSize(0, 0)); if (m_ams_info.size() > 0) { - m_Humidity_tip_popup.set_humidity_level(m_ams_info[0].ams_humidity); + for (auto i = 0; i < m_ams_info.size(); i++) { + if (m_ams_info[i].ams_id == m_current_show_ams) { + m_Humidity_tip_popup.set_humidity_level(m_ams_info[i].ams_humidity); + } + } + } m_Humidity_tip_popup.Popup(); });