Commit 294078a9 authored by Rémi Duraffort's avatar Rémi Duraffort

playlist_search: enable all items if the search string is empty

(and remove an unused argument).
Signed-off-by: default avatarRémi Duraffort <ivoire@videolan.org>
parent 6e92466d
/***************************************************************************** /*****************************************************************************
* search.c : Search functions * search.c : Search functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999-2004 the VideoLAN team * Copyright (C) 1999-2009 the VideoLAN team
* $Id$ * $Id$
* *
* Authors: Clément Stenac <zorglub@videolan.org> * Authors: Clément Stenac <zorglub@videolan.org>
...@@ -126,9 +126,30 @@ playlist_item_t * playlist_ItemGetByInputId( playlist_t *p_playlist, ...@@ -126,9 +126,30 @@ playlist_item_t * playlist_ItemGetByInputId( playlist_t *p_playlist,
* Live search handling * Live search handling
***************************************************************************/ ***************************************************************************/
static bool playlist_LiveSearchUpdateInternal( playlist_t *p_playlist, /**
playlist_item_t *p_root, * Enable all items in the playlist
const char *psz_string ) * @param p_root: the current root item
*/
static void playlist_LiveSearchClean( playlist_item_t *p_root )
{
for( int i = 0; i < p_root->i_children; i++ )
{
playlist_item_t *p_item = p_root->pp_children[i];
if( p_item->i_children >= 0 )
playlist_LiveSearchClean( p_item );
p_item->i_flags &= ~PLAYLIST_DBL_FLAG;
}
}
/**
* Enable/Disable items in the playlist according to the search argument
* @param p_root: the current root item
* @param psz_string: the string to search
* @return true if an item match
*/
static bool playlist_LiveSearchUpdateInternal( playlist_item_t *p_root,
const char *psz_string )
{ {
int i; int i;
bool b_match = false; bool b_match = false;
...@@ -137,7 +158,7 @@ static bool playlist_LiveSearchUpdateInternal( playlist_t *p_playlist, ...@@ -137,7 +158,7 @@ static bool playlist_LiveSearchUpdateInternal( playlist_t *p_playlist,
playlist_item_t *p_item = p_root->pp_children[i]; playlist_item_t *p_item = p_root->pp_children[i];
if( p_item->i_children > -1 ) if( p_item->i_children > -1 )
{ {
if( playlist_LiveSearchUpdateInternal( p_playlist, p_item, psz_string ) || if( playlist_LiveSearchUpdateInternal( p_item, psz_string ) ||
strcasestr( p_item->p_input->psz_name, psz_string ) ) strcasestr( p_item->p_input->psz_name, psz_string ) )
{ {
p_item->i_flags &= ~PLAYLIST_DBL_FLAG; p_item->i_flags &= ~PLAYLIST_DBL_FLAG;
...@@ -171,7 +192,11 @@ int playlist_LiveSearchUpdate( playlist_t *p_playlist, playlist_item_t *p_root, ...@@ -171,7 +192,11 @@ int playlist_LiveSearchUpdate( playlist_t *p_playlist, playlist_item_t *p_root,
{ {
PL_ASSERT_LOCKED; PL_ASSERT_LOCKED;
p_playlist->b_reset_currently_playing = true; p_playlist->b_reset_currently_playing = true;
playlist_LiveSearchUpdateInternal( p_playlist, p_root, psz_string ); if( *psz_string )
playlist_LiveSearchUpdateInternal( p_root, psz_string );
else
playlist_LiveSearchClean( p_root );
vlc_object_signal_unlocked( p_playlist ); vlc_object_signal_unlocked( p_playlist );
return VLC_SUCCESS; return VLC_SUCCESS;
} }
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