diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 6fdde804b..e0f507331 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1360,9 +1360,11 @@ void Sidebar::load_ams_list(std::map const &list) if (tray.second->setting_id.empty()) continue; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": ams %1% tray %2% id %3% color %4%") % ams.first % tray.first % tray.second->setting_id % tray.second->color; + char n = ams.first.front() - '0' + 'A'; DynamicPrintConfig ams; ams.set_key_value("filament_id", new ConfigOptionStrings{tray.second->setting_id}); ams.set_key_value("filament_type", new ConfigOptionStrings{tray.second->type}); + ams.set_key_value("tray_name", new ConfigOptionStrings{std::string(1, n) + tray.first}); ams.set_key_value("filament_colour", new ConfigOptionStrings{"#" + tray.second->color.substr(0, 6)}); filament_ams_list.emplace_back(std::move(ams)); } diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 2662bcb5a..09346adc6 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -384,15 +384,22 @@ void PresetComboBox::add_ams_filaments(std::string selected, bool alias_name) } const_cast(*iter).is_visible = true; auto color = f.opt_string("filament_colour", 0u); + auto name = f.opt_string("tray_name", 0u); wxColour clr(color); - wxImage img(16, 16); + wxImage img(24, 16); if (clr.Red() > 224 && clr.Blue() > 224 && clr.Green() > 224) { img.SetRGB(wxRect({0, 0}, img.GetSize()), 128, 128, 128); img.SetRGB(wxRect({1, 1}, img.GetSize() - wxSize{2, 2}), clr.Red(), clr.Green(), clr.Blue()); } else { img.SetRGB(wxRect({0, 0}, img.GetSize()), clr.Red(), clr.Green(), clr.Blue()); } - int item_id = Append(get_preset_name(*iter), img, &m_first_ams_filament + (&f - &m_preset_bundle->filament_ams_list.front())); + wxBitmap bmp(img); + wxMemoryDC dc(bmp); + dc.SetFont(Label::Body_10); + dc.SetTextForeground(different_color(clr)); + auto size = dc.GetTextExtent(name); + dc.DrawText(name, bmp.GetWidth() / 2 - size.x / 2, bmp.GetHeight() / 2 - size.y / 2); + int item_id = Append(get_preset_name(*iter), bmp.ConvertToImage(), &m_first_ams_filament + (&f - &m_preset_bundle->filament_ams_list.front())); //validate_selection(id->value == selected); // can not select } m_last_ams_filament = GetCount();