Info in ObjectList: Settings should be above the new info items, info items are selectable
This commit is contained in:
parent
548ceb7acc
commit
df3fb31268
@ -1525,14 +1525,20 @@ void ObjectList::del_subobject_item(wxDataViewItem& item)
|
|||||||
if (type == itUndef)
|
if (type == itUndef)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
wxDataViewItem parent = m_objects_model->GetParent(item);
|
||||||
|
|
||||||
if (type & itSettings)
|
if (type & itSettings)
|
||||||
del_settings_from_config(m_objects_model->GetParent(item));
|
del_settings_from_config(parent);
|
||||||
else if (type & itInstanceRoot && obj_idx != -1)
|
else if (type & itInstanceRoot && obj_idx != -1)
|
||||||
del_instances_from_object(obj_idx);
|
del_instances_from_object(obj_idx);
|
||||||
else if (type & itLayerRoot && obj_idx != -1)
|
else if (type & itLayerRoot && obj_idx != -1)
|
||||||
del_layers_from_object(obj_idx);
|
del_layers_from_object(obj_idx);
|
||||||
else if (type & itLayer && obj_idx != -1)
|
else if (type & itLayer && obj_idx != -1)
|
||||||
del_layer_from_object(obj_idx, m_objects_model->GetLayerRangeByItem(item));
|
del_layer_from_object(obj_idx, m_objects_model->GetLayerRangeByItem(item));
|
||||||
|
else if (type & itInfo && obj_idx != -1) {
|
||||||
|
Unselect(item);
|
||||||
|
Select(parent);
|
||||||
|
}
|
||||||
else if (idx == -1)
|
else if (idx == -1)
|
||||||
return;
|
return;
|
||||||
else if (!del_subobject_from_object(obj_idx, idx, type))
|
else if (!del_subobject_from_object(obj_idx, idx, type))
|
||||||
@ -1540,7 +1546,7 @@ void ObjectList::del_subobject_item(wxDataViewItem& item)
|
|||||||
|
|
||||||
// If last volume item with warning was deleted, unmark object item
|
// If last volume item with warning was deleted, unmark object item
|
||||||
if (type & itVolume && (*m_objects)[obj_idx]->get_mesh_errors_count() == 0)
|
if (type & itVolume && (*m_objects)[obj_idx]->get_mesh_errors_count() == 0)
|
||||||
m_objects_model->DeleteWarningIcon(m_objects_model->GetParent(item));
|
m_objects_model->DeleteWarningIcon(parent);
|
||||||
|
|
||||||
m_objects_model->Delete(item);
|
m_objects_model->Delete(item);
|
||||||
update_info_items(obj_idx);
|
update_info_items(obj_idx);
|
||||||
@ -2131,9 +2137,6 @@ void ObjectList::part_selection_changed()
|
|||||||
update_and_show_manipulations = true;
|
update_and_show_manipulations = true;
|
||||||
|
|
||||||
if (type == itInfo) {
|
if (type == itInfo) {
|
||||||
Unselect(item);
|
|
||||||
assert(parent_type == itObject);
|
|
||||||
Select(parent);
|
|
||||||
InfoItemType info_type = m_objects_model->GetInfoItemType(item);
|
InfoItemType info_type = m_objects_model->GetInfoItemType(item);
|
||||||
GLGizmosManager::EType gizmo_type =
|
GLGizmosManager::EType gizmo_type =
|
||||||
info_type == InfoItemType::CustomSupports ? GLGizmosManager::EType::FdmSupports
|
info_type == InfoItemType::CustomSupports ? GLGizmosManager::EType::FdmSupports
|
||||||
|
@ -377,13 +377,7 @@ wxDataViewItem ObjectDataViewModel::AddSettingsChild(const wxDataViewItem &paren
|
|||||||
|
|
||||||
const auto node = new ObjectDataViewModelNode(root, itSettings);
|
const auto node = new ObjectDataViewModelNode(root, itSettings);
|
||||||
|
|
||||||
// In case there are some info items, append after them.
|
root->Insert(node, 0);
|
||||||
size_t i = 0;
|
|
||||||
for (i = 0; i<root->GetChildCount(); ++i)
|
|
||||||
if (root->GetNthChild(i)->GetType() != itInfo)
|
|
||||||
break;
|
|
||||||
|
|
||||||
root->Insert(node, i);
|
|
||||||
// notify control
|
// notify control
|
||||||
const wxDataViewItem child((void*)node);
|
const wxDataViewItem child((void*)node);
|
||||||
ItemAdded(parent_item, child);
|
ItemAdded(parent_item, child);
|
||||||
|
Loading…
Reference in New Issue
Block a user