+
+- (IBAction)searchItem:(id)sender
+{
+ int i_start;
+ int i_current;
+ id o_current_name;
+
+ intf_thread_t * p_intf = [NSApp getIntf];
+ playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+ FIND_ANYWHERE );
+ if ( [o_table_view selectedRow] == [o_table_view numberOfRows]-1 )
+ {
+ i_start = -1;
+ }
+ else
+ {
+ i_start = [o_table_view selectedRow];
+ }
+
+ for ( i_current = i_start + 1 ; i_current < [o_table_view numberOfRows] ; i_current++ )
+ {
+
+ if( p_playlist == NULL )
+ {
+ o_current_name = nil;
+ }
+
+
+ else
+ {
+ vlc_mutex_lock( &p_playlist->object_lock );
+ o_current_name = [[NSString stringWithUTF8String:
+ p_playlist->pp_items[i_current]->psz_name] lastPathComponent];
+ vlc_mutex_unlock( &p_playlist->object_lock );
+ }
+
+ if( [o_current_name rangeOfString:[o_search_keyword stringValue] options:NSCaseInsensitiveSearch ].length )
+ {
+ [o_table_view selectRow: i_current byExtendingSelection: NO];
+ [o_table_view scrollRowToVisible: i_current];
+ break;
+ }
+ [o_table_view selectRow: i_current byExtendingSelection: NO];
+ [o_table_view scrollRowToVisible: i_current];
+ }
+ vlc_object_release( p_playlist );
+}
+