Fixed SPE 957 - Impossible to add a part by "Load..." to an object, if the object has some instances

This commit is contained in:
YuSanka 2019-06-17 15:33:58 +02:00
parent 72479428d7
commit f70b25d2f8
2 changed files with 9 additions and 4 deletions

View file

@ -1415,13 +1415,18 @@ void ObjectList::update_opt_keys(t_config_option_keys& opt_keys)
void ObjectList::load_subobject(ModelVolumeType type) void ObjectList::load_subobject(ModelVolumeType type)
{ {
auto item = GetSelection(); wxDataViewItem item = GetSelection();
if (!item || m_objects_model->GetParent(item) != wxDataViewItem(0)) // we can add volumes for Object or Instance
if (!item || !(m_objects_model->GetItemType(item)&(itObject|itInstance)))
return; return;
int obj_idx = m_objects_model->GetIdByItem(item); const int obj_idx = m_objects_model->GetObjectIdByItem(item);
if (obj_idx < 0) return; if (obj_idx < 0) return;
// Get object item, if Instance is selected
if (m_objects_model->GetItemType(item)&itInstance)
item = m_objects_model->GetItemById(obj_idx);
std::vector<std::pair<wxString, bool>> volumes_info; std::vector<std::pair<wxString, bool>> volumes_info;
load_part((*m_objects)[obj_idx], volumes_info, type); load_part((*m_objects)[obj_idx], volumes_info, type);

View file

@ -586,7 +586,7 @@ wxDataViewItem ObjectDataViewModel::AddVolumeChild( const wxDataViewItem &parent
ItemAdded(parent_item, child); ItemAdded(parent_item, child);
root->m_volumes_cnt++; root->m_volumes_cnt++;
if (insert_position > 0) insert_position++; if (insert_position >= 0) insert_position++;
} }
const auto node = new ObjectDataViewModelNode(root, name, GetVolumeIcon(volume_type, has_errors), extruder_str, root->m_volumes_cnt); const auto node = new ObjectDataViewModelNode(root, name, GetVolumeIcon(volume_type, has_errors), extruder_str, root->m_volumes_cnt);