ENH: update filament color file; the color name may be empty; using set instead of unordered_set

jira: [STUDIO-12346]
Change-Id: If83835fea7108babd2b19c26394ad0429493f394
(cherry picked from commit 85b07c170cd0e30f75dfab8ef68b02b0468c9f92)
This commit is contained in:
xin.zhang
2025-06-30 17:55:49 +08:00
committed by Noisyfox
parent bf3875e4c9
commit 2be0569e3d
3 changed files with 37 additions and 1841 deletions

View File

@@ -141,10 +141,7 @@ wxString FilamentColorCode::GetFilaColorName() const
const wxString& strLanguage = Slic3r::GUI::wxGetApp().app_config->get("language");
const wxString& lang_code = strLanguage.BeforeFirst('_');
auto it = m_fila_color_names.find(lang_code);
if (it != m_fila_color_names.end())
{
return it->second;
}
if (it != m_fila_color_names.end() && !it->second.empty()) { return it->second; }
it = m_fila_color_names.find("en");// retry with English as fallback
return (it != m_fila_color_names.end()) ? it->second : "Unknown";
@@ -156,18 +153,6 @@ FilamentColorCode::FilamentColorCode(const wxString& color_code, FilamentColorCo
m_fila_color(std::move(color)),
m_fila_color_names(std::move(name_map))
{
if (m_owner)
{
m_owner->AddColorCode(this);
}
}
FilamentColorCode::~FilamentColorCode()
{
if (m_owner)
{
m_owner->RemoveColorCode(this);
}
}
void FilamentColorCode::Debug(const char* prefix)
@@ -187,11 +172,9 @@ FilamentColorCodes::FilamentColorCodes(const wxString& fila_id, const wxString&
FilamentColorCodes::~FilamentColorCodes()
{
while (!m_fila_colors_map->empty()) // Ensure all color codes are removed before deleting the map
{
delete m_fila_colors_map->begin()->second; // Delete the first color code
}
for (auto iter : *m_fila_colors_map) { delete iter.second; }
m_fila_colors_map->clear();
delete m_fila_colors_map;
}
@@ -206,11 +189,6 @@ void FilamentColorCodes::AddColorCode(FilamentColorCode* code)
m_fila_colors_map->emplace(code->GetFilaColor(), code);
}
void FilamentColorCodes::RemoveColorCode(FilamentColorCode* code)
{
m_fila_colors_map->erase(code->GetFilaColor());
}
void FilamentColorCodes::Debug(const char* prefix)
{
BOOST_LOG_TRIVIAL(debug) << prefix << "Fila ID: " << m_fila_id << ", Type: " << m_fila_type;