Commit bc2aaf77 authored by Felix Paul Kühne's avatar Felix Paul Kühne

Slightly cleaned the way we delete items

parent a4eb03a5
...@@ -808,48 +808,49 @@ ...@@ -808,48 +808,49 @@
- (IBAction)deleteItem:(id)sender - (IBAction)deleteItem:(id)sender
{ {
int i, i_count, i_row; int i_count, i_row;
NSMutableArray *o_to_delete; NSMutableArray *o_to_delete;
NSNumber *o_number; NSNumber *o_number;
playlist_t * p_playlist; playlist_t * p_playlist;
intf_thread_t * p_intf = VLCIntf; intf_thread_t * p_intf = VLCIntf;
p_playlist = pl_Yield( p_intf );
o_to_delete = [NSMutableArray arrayWithArray:[[o_outline_view selectedRowEnumerator] allObjects]]; o_to_delete = [NSMutableArray arrayWithArray:[[o_outline_view selectedRowEnumerator] allObjects]];
i_count = [o_to_delete count]; i_count = [o_to_delete count];
for( i = 0; i < i_count; i++ ) p_playlist = pl_Yield( p_intf );
PL_LOCK;
for( int i = 0; i < i_count; i++ )
{ {
o_number = [o_to_delete lastObject]; o_number = [o_to_delete lastObject];
i_row = [o_number intValue]; i_row = [o_number intValue];
id o_item = [o_outline_view itemAtRow: i_row]; id o_item = [o_outline_view itemAtRow: i_row];
playlist_item_t *p_item = [o_item pointerValue]; playlist_item_t *p_item = [o_item pointerValue];
#ifndef NDEBUG
msg_Dbg( p_intf, "deleting item %i (of %i) with id \"%i\", pointerValue \"%p\" and %i children", i+1, i_count,
p_item->p_input->i_id, [o_item pointerValue], p_item->i_children +1 );
#endif
[o_to_delete removeObject: o_number]; [o_to_delete removeObject: o_number];
[o_outline_view deselectRow: i_row]; [o_outline_view deselectRow: i_row];
if( [[o_outline_view dataSource] outlineView:o_outline_view if( p_item->i_children != -1 )
numberOfChildrenOfItem: o_item] > 0 )
//is a node and not an item //is a node and not an item
{ {
if( p_playlist->status.i_status != PLAYLIST_STOPPED && if( p_playlist->status.i_status != PLAYLIST_STOPPED &&
[self isItem: p_playlist->status.p_item inNode: [self isItem: p_playlist->status.p_item inNode:
((playlist_item_t *)[o_item pointerValue]) ((playlist_item_t *)[o_item pointerValue])
checkItemExistence: NO] == YES ) checkItemExistence: NO] == YES )
{
// if current item is in selected node and is playing then stop playlist // if current item is in selected node and is playing then stop playlist
playlist_Stop( p_playlist ); playlist_Stop( p_playlist );
}
vlc_mutex_lock( &p_playlist->object_lock );
playlist_NodeDelete( p_playlist, p_item, VLC_TRUE, VLC_FALSE ); playlist_NodeDelete( p_playlist, p_item, VLC_TRUE, VLC_FALSE );
vlc_mutex_unlock( &p_playlist->object_lock );
} }
else else
{ playlist_DeleteFromInput( p_playlist, p_item->p_input->i_id, VLC_TRUE );
playlist_DeleteFromInput( p_playlist, p_item->p_input->i_id, VLC_FALSE );
}
} }
PL_UNLOCK;
[self playlistUpdated]; [self playlistUpdated];
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
...@@ -913,7 +914,7 @@ ...@@ -913,7 +914,7 @@
o_name = (NSString *)[o_one_item objectForKey: @"ITEM_NAME"]; o_name = (NSString *)[o_one_item objectForKey: @"ITEM_NAME"];
o_options = (NSArray *)[o_one_item objectForKey: @"ITEM_OPTIONS"]; o_options = (NSArray *)[o_one_item objectForKey: @"ITEM_OPTIONS"];
/* Find the name for a disc entry ( i know, can you believe the trouble?) */ /* Find the name for a disc entry (i know, can you believe the trouble?) */
if( ( !o_name || [o_name isEqualToString:@""] ) && [o_uri rangeOfString: @"/dev/"].location != NSNotFound ) if( ( !o_name || [o_name isEqualToString:@""] ) && [o_uri rangeOfString: @"/dev/"].location != NSNotFound )
{ {
int i_count, i_index; int i_count, i_index;
......
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