FIX: Correct virtual tray loading and multi-color material display

- Fixed incorrect is_array() check on vtray["cols"], causing virtual tray init failure.
- Rewrote AMS grouping logic using iterators and set<int> for cleaner and safer traversal.

jira: STUDIO-12955

Change-Id: I09a68e259b56864260abb6c59ff9b1bf7ec2823c
(cherry picked from commit 60c47473047a3fba20d59cd974179537c116524d)
This commit is contained in:
fei2.fang
2025-06-28 17:35:14 +08:00
committed by Noisyfox
parent 470ed6af5d
commit 27943f7047
3 changed files with 11 additions and 12 deletions

View File

@@ -1404,8 +1404,7 @@ FilamentColor PlaterPresetComboBox::get_cur_color_info()
std::vector<std::string> filament_color_type = Slic3r::GUI::wxGetApp().plater()->get_filament_color_render_type();
std::string filament_color_info = filaments_multi_color[m_filament_idx];
std::vector<std::string> colors;
boost::split(colors, filament_color_info, boost::is_any_of(" "));
colors = Slic3r::split_string(filament_color_info, ' ');
FilamentColor fila_color;
for (const std::string& color_str : colors) {
if (!color_str.empty()) {