From f7e49a3846ee9887924b777f5b2cb154d1b5cc1f Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Wed, 13 Nov 2024 16:49:14 +0800 Subject: [PATCH] FIX:use ui_and_3d_volume_map to change filament for cut and text object jira:github 5195 Change-Id: I17cd57fef0e4882167643174ae2ba36023cbe349 --- src/slic3r/GUI/GUI_ObjectList.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 07b933ab7..9ce64b1e8 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -909,12 +909,15 @@ void ObjectList::update_filament_in_config(const wxDataViewItem& item) } else { const int obj_idx = m_objects_model->GetIdByItem(m_objects_model->GetObject(item)); - if (item_type & itVolume) - { - const int volume_id = m_objects_model->GetVolumeIdByItem(item); - if (obj_idx < 0 || volume_id < 0) - return; - m_config = &(*m_objects)[obj_idx]->volumes[volume_id]->config; + if (item_type & itVolume){ + const int ui_volume_idx = m_objects_model->GetVolumeIdByItem(item); + if (obj_idx < 0 || ui_volume_idx < 0) + return; + auto &ui_and_3d_volume_map = m_objects_model->get_ui_and_3d_volume_map(); + if (ui_and_3d_volume_map.find(ui_volume_idx) == ui_and_3d_volume_map.end()) { + return; + } + m_config = &(*m_objects)[obj_idx]->volumes[ui_and_3d_volume_map[ui_volume_idx]]->config; } else if (item_type & itLayer) m_config = &get_item_config(item);