Update the icon of a parent item without children in wxDataViewCtrl.

Ensure that a parent item that doesn't have any children any more isn't left
with a "-" expander icon, it can't be collapsed any more but only expanded
again (possibly adding children under it dynamically). This results in better
behaviour in e.g. the last page of the dataview sample where the container
item remained with a "+" icon even after its both children were deleted.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-08-11 23:09:33 +00:00
parent a73a80a987
commit c3b504ad03

View File

@@ -2339,7 +2339,17 @@ bool wxDataViewMainWindow::ItemDeleted(const wxDataViewItem& parent,
// If this was the last child to be removed, it's possible the parent
// node became a leaf. Let's ask the model about it.
if ( parentNode->GetChildNodes().empty() )
parentNode->SetHasChildren(GetModel()->IsContainer(parent));
{
bool isContainer = GetModel()->IsContainer(parent);
parentNode->SetHasChildren(isContainer);
if ( isContainer )
{
// If it's still a container, make sure we show "+" icon for it
// and not "-" one as there is nothing to collapse any more.
if ( parentNode->IsOpen() )
parentNode->ToggleOpen();
}
}
// Update selection by removing 'item' and its entire children tree from the selection.
if ( !m_selection.empty() )