From 66b3d5e26305d6ca993035329adf2d867369c7e9 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sun, 3 May 2026 15:42:45 +0800 Subject: [PATCH] Fix/fixed unicode preset name issue (#13458) * fixed an issue for unicode preset name --- src/slic3r/GUI/PresetComboBoxes.cpp | 10 +++++----- src/slic3r/GUI/Tab.cpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 0fd7374f3c..93a67601a7 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -1175,8 +1175,8 @@ void PlaterPresetComboBox::update() } bool single_bar = false; - wxString name = preset.name; - preset_aliases[name] = get_preset_name(preset).ToStdString(); // ORCA + wxString name = from_u8(preset.name); + preset_aliases[name] = get_preset_name(preset).utf8_string(); // ORCA // Track bundle names for bundled presets if (preset.is_from_bundle()) { @@ -1232,7 +1232,7 @@ void PlaterPresetComboBox::update() name = from_u8(is_selected && preset.is_dirty ? Preset::suffix_modified() + printer_model : printer_model); if (system_printer_models.count(printer_model) == 0) { - preset_aliases[name] = name.ToStdString(); // ORCA + preset_aliases[name] = name.utf8_string(); // ORCA system_presets.emplace(name, bmp); system_printer_models.insert(printer_model); } @@ -1676,8 +1676,8 @@ void TabPresetComboBox::update() wxBitmap* bmp = get_bmp(preset); assert(bmp); - const wxString name = preset.name; - preset_aliases[name] = get_preset_name(preset).ToStdString(); + const wxString name = from_u8(preset.name); + preset_aliases[name] = get_preset_name(preset).utf8_string(); if (preset.is_system) preset_descriptions.emplace(name, from_u8(preset.description)); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 2066de7e65..c9c5bbe4c9 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -6808,10 +6808,10 @@ wxSizer* Tab::compatible_widget_create(wxWindow* parent, PresetDependencies &dep // Collect and set indices of depending_presets marked as compatible. wxArrayInt selections; auto *compatible_printers = dynamic_cast(m_config->option(deps.key_list)); - if (compatible_printers != nullptr || !compatible_printers->values.empty()) + if (compatible_printers != nullptr && !compatible_printers->values.empty()) for (auto preset_name : compatible_printers->values) for (size_t idx = 0; idx < presets.GetCount(); ++idx) - if (presets[idx] == preset_name) { + if (presets[idx] == from_u8(preset_name)) { selections.Add(idx); break; }