mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
FIX: fix bug when delete filament
update filament of HeightRange jira: none Change-Id: I62cb21a65ecdfc36e8bc7d0915a85ecba578e49f (cherry picked from commit 8232a716e64fcfbd12fc7ebdaeeef4bfde261f66)
This commit is contained in:
@@ -764,6 +764,39 @@ void ObjectList::update_filament_values_for_items_when_delete_filament(const siz
|
||||
object->volumes[id]->config.erase(key);
|
||||
}
|
||||
}
|
||||
|
||||
item = m_objects_model->GetItemById(i);
|
||||
ObjectDataViewModelNode *object_node = static_cast<ObjectDataViewModelNode *>(item.GetID());
|
||||
if (object_node->GetChildCount() == 0)
|
||||
continue;
|
||||
|
||||
// update height_range
|
||||
for (size_t i = 0; i < object_node->GetChildCount(); i++) {
|
||||
ObjectDataViewModelNode * layer_root_node = object_node->GetNthChild(i);
|
||||
if (layer_root_node->GetType() != ItemType::itLayerRoot)
|
||||
continue;
|
||||
for (size_t j = 0; j < layer_root_node->GetChildCount(); j++) {
|
||||
ObjectDataViewModelNode * layer_node = layer_root_node->GetNthChild(j);
|
||||
auto layer_item = wxDataViewItem((void *) layer_root_node->GetNthChild(j));
|
||||
if (!layer_item)
|
||||
continue;
|
||||
auto l_iter = object->layer_config_ranges.find(layer_node->GetLayerRange());
|
||||
if (l_iter != object->layer_config_ranges.end()) {
|
||||
auto& layer_range_item = *(l_iter);
|
||||
if (layer_range_item.second.has("extruder") && layer_range_item.second.option("extruder")->getInt() == filament_id + 1) {
|
||||
int new_extruder = 0;
|
||||
extruder = wxString::Format("%d", new_extruder);
|
||||
layer_range_item.second.set("extruder", new_extruder);
|
||||
} else {
|
||||
int layer_filament_id = layer_range_item.second.option("extruder")->getInt();
|
||||
int new_extruder = layer_filament_id > filament_id ? layer_filament_id - 1 : layer_filament_id;
|
||||
extruder = wxString::Format("%d", new_extruder);
|
||||
layer_range_item.second.set("extruder", new_extruder);
|
||||
}
|
||||
m_objects_model->SetExtruder(extruder, layer_item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// BBS
|
||||
|
||||
Reference in New Issue
Block a user