vlc | branch: master | Erwan Tulou <[email protected]> | Tue Aug 10 18:19:15 2010 +0200| [e866693d12668857fe05564e64c7b73b1240e38b] | committer: Erwan Tulou
skins2: playlist make sure deletion works for both nodes and leaves > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e866693d12668857fe05564e64c7b73b1240e38b --- modules/gui/skins2/vars/playtree.cpp | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/gui/skins2/vars/playtree.cpp b/modules/gui/skins2/vars/playtree.cpp index 43cba38..c8dfb91 100644 --- a/modules/gui/skins2/vars/playtree.cpp +++ b/modules/gui/skins2/vars/playtree.cpp @@ -51,12 +51,11 @@ void Playtree::delSelected() { Iterator it = begin(); playlist_Lock( getIntf()->p_sys->p_playlist ); - for( it = begin(); it != end(); it = getNextVisibleItem( it ) ) + for( it = begin(); it != end(); it = getNextItem( it ) ) { - if( (*it).m_selected && !(*it).isReadonly() ) + if( it->m_selected && !it->isReadonly() ) { - (*it).m_deleted = true; - (*it).m_expanded = false; + it->cascadeDelete(); } } /// \todo Do this better (handle item-deleted) @@ -66,7 +65,7 @@ void Playtree::delSelected() it = begin(); while( it != end() ) { - if( (*it).m_deleted ) + if( it->m_deleted ) { VarTree::Iterator it2; playlist_item_t *p_item = (playlist_item_t *)(it->m_pData); @@ -74,13 +73,14 @@ void Playtree::delSelected() { playlist_DeleteFromInput( getIntf()->p_sys->p_playlist, p_item->p_input, pl_Locked ); + it2 = getNextItem( it ) ; } else { playlist_NodeDelete( getIntf()->p_sys->p_playlist, p_item, true, false ); + it2 = it->getNextSiblingOrUncle(); } - it2 = getNextItem( it ) ; it->parent()->removeChild( it ); it = it2; } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
