From: Clément Stenac Date: Sun, 4 Dec 2005 21:14:12 +0000 (+0000) Subject: Implement playtree.sort() (basic implementation) X-Git-Tag: 0.9.0-test0~13061 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=af10ead71f24220479ad5be2f153cfa60b787367;p=vlc Implement playtree.sort() (basic implementation) Fix a bug in delete --- diff --git a/modules/gui/skins2/commands/cmd_playtree.cpp b/modules/gui/skins2/commands/cmd_playtree.cpp index e74c12df27..b565bffa87 100644 --- a/modules/gui/skins2/commands/cmd_playtree.cpp +++ b/modules/gui/skins2/commands/cmd_playtree.cpp @@ -32,5 +32,14 @@ void CmdPlaytreeDel::execute() void CmdPlaytreeSort::execute() { - // TODO + // TODO: Choose sort method + playlist_t *p_playlist = getIntf()->p_sys->p_playlist; + vlc_mutex_lock( &p_playlist->object_lock ); + playlist_view_t* p_view = playlist_ViewFind( p_playlist, p_playlist->status.i_view ); + playlist_RecursiveNodeSort( p_playlist, p_view->p_root , SORT_TITLE, ORDER_NORMAL ); + vlc_mutex_unlock( &p_playlist->object_lock ); + + // Ask for rebuild + Playtree &rVar = VlcProc::instance( getIntf() )->getPlaytreeVar(); + rVar.onChange(); } diff --git a/modules/gui/skins2/controls/ctrl_tree.cpp b/modules/gui/skins2/controls/ctrl_tree.cpp index 35fbcb9d56..7023ef8bc5 100644 --- a/modules/gui/skins2/controls/ctrl_tree.cpp +++ b/modules/gui/skins2/controls/ctrl_tree.cpp @@ -140,6 +140,7 @@ void CtrlTree::onUpdate( Subject &rTree, } else if ( arg->i_type == 1 ) // Global change or deletion { + m_firstPos = m_rTree.begin(); makeImage(); } else if ( arg->i_type == 2 ) // Item-append diff --git a/modules/gui/skins2/src/skin_main.cpp b/modules/gui/skins2/src/skin_main.cpp index d4aca6a307..62468b25fb 100644 --- a/modules/gui/skins2/src/skin_main.cpp +++ b/modules/gui/skins2/src/skin_main.cpp @@ -245,8 +245,7 @@ static void Run( intf_thread_t *p_intf ) FIND_ANYWHERE ); if( p_playlist ) { - p_playlist->status.i_view = -1; - playlist_Control( p_playlist, PLAYLIST_AUTOPLAY ); + playlist_LockControl( p_playlist, PLAYLIST_AUTOPLAY ); vlc_object_release( p_playlist ); } } diff --git a/modules/gui/skins2/vars/playtree.cpp b/modules/gui/skins2/vars/playtree.cpp index bcfaa7824a..08a1956324 100644 --- a/modules/gui/skins2/vars/playtree.cpp +++ b/modules/gui/skins2/vars/playtree.cpp @@ -200,6 +200,7 @@ void Playtree::buildTree() buildNode( p_view->p_root, *this ); vlc_mutex_unlock( &m_pPlaylist->object_lock ); - checkParents( NULL ); +// What is it ? +// checkParents( NULL ); }