From 2d43ce4702934cc7ee6c5f030df4df95a3cf1587 Mon Sep 17 00:00:00 2001 From: tao wang Date: Fri, 26 May 2023 11:13:56 +0800 Subject: [PATCH] NEW:disable ams mapping when sending printing Change-Id: Icf2c859151c8c5605e651426154ce6fa84269b87 --- src/slic3r/GUI/AmsMappingPopup.cpp | 70 +++++++++++++++++++++------ src/slic3r/GUI/AmsMappingPopup.hpp | 2 + src/slic3r/GUI/SelectMachine.cpp | 12 +++-- src/slic3r/GUI/Widgets/AMSControl.cpp | 4 +- 4 files changed, 66 insertions(+), 22 deletions(-) diff --git a/src/slic3r/GUI/AmsMappingPopup.cpp b/src/slic3r/GUI/AmsMappingPopup.cpp index d8aa20558..b2b69e3fb 100644 --- a/src/slic3r/GUI/AmsMappingPopup.cpp +++ b/src/slic3r/GUI/AmsMappingPopup.cpp @@ -62,6 +62,22 @@ void MaterialItem::set_ams_info(wxColour col, wxString txt) if (need_refresh) { Refresh();} } +void MaterialItem::disable() +{ + if (IsEnabled()) { + this->Disable(); + Refresh(); + } +} + +void MaterialItem::enable() +{ + if (!IsEnabled()) { + this->Enable(); + Refresh(); + } +} + void MaterialItem::on_selected() { if (!m_selected) { @@ -118,16 +134,26 @@ void MaterialItem::render(wxDC &dc) doRender(dc); #endif + auto mcolor = m_material_coloul; + auto acolor = m_ams_coloul; + if (!IsEnabled()) { + mcolor = wxColour(0x90, 0x90, 0x90); + acolor = wxColour(0x90, 0x90, 0x90); + } + else { + mcolor = m_material_coloul; + acolor = m_ams_coloul; + } + // materials name dc.SetFont(::Label::Body_13); - auto material_name_colour = m_material_coloul.GetLuminance() < 0.5 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30); - if (m_material_coloul.Alpha() == 0) {material_name_colour = wxColour(0x26, 0x2E, 0x30);} + auto material_name_colour = mcolor.GetLuminance() < 0.6 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30); + if (mcolor.Alpha() == 0) {material_name_colour = wxColour(0x26, 0x2E, 0x30);} dc.SetTextForeground(material_name_colour); if (dc.GetTextExtent(m_material_name).x > GetSize().x - 10) { dc.SetFont(::Label::Body_10); - } auto material_txt_size = dc.GetTextExtent(m_material_name); @@ -135,8 +161,8 @@ void MaterialItem::render(wxDC &dc) // mapping num dc.SetFont(::Label::Body_10); - dc.SetTextForeground(m_ams_coloul.GetLuminance() < 0.5 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30)); - if (m_ams_coloul.Alpha() == 0) { + dc.SetTextForeground(acolor.GetLuminance() < 0.6 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30)); + if (acolor.Alpha() == 0) { dc.SetTextForeground(wxColour(0x26, 0x2E, 0x30)); } @@ -153,32 +179,44 @@ void MaterialItem::render(wxDC &dc) void MaterialItem::doRender(wxDC &dc) { - if (m_material_coloul.Alpha() == 0) { + auto mcolor = m_material_coloul; + auto acolor = m_ams_coloul; + + if (mcolor.Alpha() == 0) { dc.DrawBitmap(m_transparent_mitem.bmp(), FromDIP(1), FromDIP(1)); } + if (!IsEnabled()) { + mcolor = wxColour(0x90, 0x90, 0x90); + acolor = wxColour(0x90, 0x90, 0x90); + } + else { + mcolor = m_material_coloul; + acolor = m_ams_coloul; + } + //top dc.SetPen(*wxTRANSPARENT_PEN); - dc.SetBrush(wxBrush(m_material_coloul)); + dc.SetBrush(wxBrush(mcolor)); dc.DrawRoundedRectangle(FromDIP(1), FromDIP(1), MATERIAL_ITEM_REAL_SIZE.x, FromDIP(18), 5); //bottom dc.SetPen(*wxTRANSPARENT_PEN); - dc.SetBrush(wxBrush(wxColour(m_ams_coloul))); + dc.SetBrush(wxBrush(wxColour(acolor))); dc.DrawRoundedRectangle(FromDIP(1), FromDIP(18), MATERIAL_ITEM_REAL_SIZE.x, FromDIP(16), 5); ////middle dc.SetPen(*wxTRANSPARENT_PEN); - dc.SetBrush(wxBrush(m_material_coloul)); + dc.SetBrush(wxBrush(mcolor)); dc.DrawRectangle(FromDIP(1), FromDIP(11), MATERIAL_ITEM_REAL_SIZE.x, FromDIP(8)); dc.SetPen(*wxTRANSPARENT_PEN); - dc.SetBrush(wxBrush(m_ams_coloul)); + dc.SetBrush(wxBrush(acolor)); dc.DrawRectangle(FromDIP(1), FromDIP(18), MATERIAL_ITEM_REAL_SIZE.x, FromDIP(8)); ////border #if __APPLE__ - if (m_material_coloul == *wxWHITE || m_ams_coloul == *wxWHITE) { + if (mcolor == *wxWHITE || acolor == *wxWHITE) { dc.SetPen(wxColour(0xAC, 0xAC, 0xAC)); dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.DrawRoundedRectangle(1, 1, MATERIAL_ITEM_SIZE.x - 1, MATERIAL_ITEM_SIZE.y - 1, 5); @@ -190,7 +228,7 @@ void MaterialItem::doRender(wxDC &dc) dc.DrawRoundedRectangle(1, 1, MATERIAL_ITEM_SIZE.x - 1, MATERIAL_ITEM_SIZE.y - 1, 5); } #else - if (m_material_coloul == *wxWHITE || m_ams_coloul == *wxWHITE || m_ams_coloul.Alpha() == 0) { + if (mcolor == *wxWHITE || acolor == *wxWHITE || acolor.Alpha() == 0) { dc.SetPen(wxColour(0xAC, 0xAC, 0xAC)); dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.DrawRoundedRectangle(0, 0, MATERIAL_ITEM_SIZE.x, MATERIAL_ITEM_SIZE.y, 5); @@ -203,8 +241,8 @@ void MaterialItem::doRender(wxDC &dc) } #endif //arrow - if ( (m_ams_coloul.Red() > 160 && m_ams_coloul.Green() > 160 && m_ams_coloul.Blue() > 160) && - (m_ams_coloul.Red() < 180 && m_ams_coloul.Green() < 180 && m_ams_coloul.Blue() < 180)) { + if ( (acolor.Red() > 160 && acolor.Green() > 160 && acolor.Blue() > 160) && + (acolor.Red() < 180 && acolor.Green() < 180 && acolor.Blue() < 180)) { dc.DrawBitmap(m_arraw_bitmap_white.bmp(), GetSize().x - m_arraw_bitmap_white.GetBmpSize().x - FromDIP(7), GetSize().y - m_arraw_bitmap_white.GetBmpSize().y); } else { @@ -602,7 +640,7 @@ void MappingItem::render(wxDC &dc) // materials name dc.SetFont(::Label::Head_13); - auto txt_colour = m_coloul.GetLuminance() < 0.5 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30); + auto txt_colour = m_coloul.GetLuminance() < 0.6 ? *wxWHITE : wxColour(0x26, 0x2E, 0x30); txt_colour = m_unmatch ? wxColour(0xCE, 0xCE, 0xCE) : txt_colour; if (m_coloul.Alpha() == 0) txt_colour = wxColour(0x26, 0x2E, 0x30); dc.SetTextForeground(txt_colour); @@ -1477,7 +1515,7 @@ void AmsRMGroup::doRender(wxDC& dc) //draw tray dc.SetFont(::Label::Body_12); auto text_size = dc.GetTextExtent(tray_name); - dc.SetTextForeground(tray_color.GetLuminance() < 0.5 ? *wxWHITE : wxColour(0x262E30)); + dc.SetTextForeground(tray_color.GetLuminance() < 0.6 ? *wxWHITE : wxColour(0x262E30)); dc.DrawText(tray_name, x_center - text_size.x / 2, size.y - y_center - text_size.y / 2); //draw split line diff --git a/src/slic3r/GUI/AmsMappingPopup.hpp b/src/slic3r/GUI/AmsMappingPopup.hpp index d81552bfe..849e9ec81 100644 --- a/src/slic3r/GUI/AmsMappingPopup.hpp +++ b/src/slic3r/GUI/AmsMappingPopup.hpp @@ -83,6 +83,8 @@ public: void msw_rescale(); void set_ams_info(wxColour col, wxString txt); + void disable(); + void enable(); void on_normal(); void on_selected(); void on_warning(); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 3a5606b78..45975fc78 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1741,6 +1741,10 @@ void SelectMachineDialog::prepare_mode() Layout(); Fit(); } + + for (auto it = m_materialList.begin(); it != m_materialList.end(); it++) { + it->second->item->enable(); + } } void SelectMachineDialog::sending_mode() @@ -1754,6 +1758,10 @@ void SelectMachineDialog::sending_mode() Layout(); Fit(); } + + for (auto it = m_materialList.begin(); it != m_materialList.end(); it++) { + it->second->item->disable(); + } } void SelectMachineDialog::finish_mode() @@ -3294,10 +3302,6 @@ void SelectMachineDialog::set_default() m_button_refresh->Show(false); m_rename_normal_panel->Show(false); m_hyperlink->Show(false); - - /* DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); - if (!dev_manager) return; - MachineObject* obj_ = dev_manager->get_selected_machine();*/ } //project name diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 863504159..8e2725685 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -719,7 +719,7 @@ void AMSLib::render(wxDC &dc) auto tmp_lib_colour = m_info.material_colour; auto temp_text_colour = AMS_CONTROL_GRAY800; - if (tmp_lib_colour.GetLuminance() < 0.5) { + if (tmp_lib_colour.GetLuminance() < 0.6) { temp_text_colour = AMS_CONTROL_WHITE_COLOUR; } else { temp_text_colour = AMS_CONTROL_GRAY800; @@ -822,7 +822,7 @@ void AMSLib::doRender(wxDC &dc) dc.SetBrush(wxBrush(AMS_CONTROL_DEF_LIB_BK_COLOUR)); dc.DrawRoundedRectangle(FromDIP(4), FromDIP(4), size.x - FromDIP(8), size.y - FromDIP(8), m_radius); - if (tmp_lib_colour.GetLuminance() < 0.5) { + if (tmp_lib_colour.GetLuminance() < 0.6) { temp_bitmap_third = m_bitmap_editable_light; temp_bitmap_brand = m_bitmap_readonly_light; } else {