Commit f08c97e0 authored by Marian Durkovic's avatar Marian Durkovic

Fixed RecursiveDeleteSelection() to prevent destroying the whole playlist

Closes #792
parent a2112a98
......@@ -1041,16 +1041,23 @@ void Playlist::RecursiveDeleteSelection( wxTreeItemId root )
{
wxTreeItemIdValue cookie;
wxTreeItemId child = treectrl->GetFirstChild( root, cookie );
wxTreeItemId nextchild;
bool childIsSelected = FALSE;
bool nextchildIsSelected = FALSE;
if( child.IsOk() ) childIsSelected = treectrl->IsSelected( child );
while( child.IsOk() )
{
if( treectrl->ItemHasChildren( child ) )
{
RecursiveDeleteSelection( child );
if( treectrl->IsSelected(child ) ) DeleteTreeItem( child );
}
else if( treectrl->IsSelected( child ) )
nextchild = treectrl->GetNextChild( root, cookie );
if( nextchild.IsOk() )
nextchildIsSelected = treectrl->IsSelected( nextchild );
if( childIsSelected )
DeleteTreeItem( child );
child = treectrl->GetNextChild( root, cookie );
else if( treectrl->ItemHasChildren( child ) )
RecursiveDeleteSelection( child );
child = nextchild;
childIsSelected = nextchildIsSelected;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment