ENH: [STUDIO-3980] drag object accross plate in ObjectList

Change-Id: Iee3193a8e0eaea67670a55e023fe64adca7a8695
This commit is contained in:
chunmao.guo 2023-08-18 18:46:51 +08:00 committed by Lane.Wei
parent 5076a3008a
commit 94f26da614
4 changed files with 92 additions and 18 deletions

View file

@ -1811,8 +1811,10 @@ wxDataViewItem ObjectDataViewModel::ReorganizeObjects( const int current_id, co
m_objects.erase(m_objects.begin() + current_id);
plate_node->GetChildren().Remove(deleted_node);
ItemDeleted(wxDataViewItem(deleted_node->m_parent), wxDataViewItem(deleted_node));
ItemDeleted(wxDataViewItem(plate_node), wxDataViewItem(deleted_node));
bool change_plate = plate_node != new_node->m_parent;
plate_node = deleted_node->m_parent = new_node->m_parent;
m_objects.emplace(m_objects.begin() + new_id, deleted_node);
int plate_child_index = plate_node->GetChildIndex(new_node);
if (current_id < new_id)
@ -1821,7 +1823,7 @@ wxDataViewItem ObjectDataViewModel::ReorganizeObjects( const int current_id, co
//should not happen
plate_node->Insert(deleted_node, plate_child_index);
}
ItemAdded(wxDataViewItem(deleted_node->m_parent), wxDataViewItem(deleted_node));
ItemAdded(wxDataViewItem(plate_node), wxDataViewItem(deleted_node));
//ItemChanged(wxDataViewItem(nullptr));