Don't assert in wxDataViewCtrl::ItemDeleted() if item doesn't exist.
It seems that it might be valid to delete the items that the GUI control doesn't know anything about, e.g. this could happen when deleting a child of a collapsed node in a tree model. So remove the asserts which were triggered in this case as there doesn't seem to be any way to avoid them with the current code. Closes #11802. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1989,9 +1989,12 @@ bool wxDataViewMainWindow::ItemDeleted(const wxDataViewItem& parent,
|
||||
|
||||
wxDataViewTreeNode * node = FindNode(parent);
|
||||
|
||||
wxCHECK_MSG( node != NULL, false, "item not found" );
|
||||
wxCHECK_MSG( node->GetChildren().Index( item.GetID() ) != wxNOT_FOUND,
|
||||
false, "item not found" );
|
||||
// Notice that it is possible that the item being deleted is not in the
|
||||
// tree at all, for example we could be deleting a never shown (because
|
||||
// collapsed) item in a tree model. So it's not an error if we don't know
|
||||
// about this item, just return without doing anything then.
|
||||
if ( !node || node->GetChildren().Index(item.GetID()) == wxNOT_FOUND )
|
||||
return false;
|
||||
|
||||
int sub = -1;
|
||||
node->GetChildren().Remove( item.GetID() );
|
||||
|
Reference in New Issue
Block a user