vlc | branch: master | Felix Paul Kühne <[email protected]> | Wed Aug 22 18:07:21 2012 +0200| [1c2af88fd9d41ffb379ff4de6f59565f16d1df0e] | committer: Felix Paul Kühne
macosx/playlist: add another sanity check and simplify the code a bit > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1c2af88fd9d41ffb379ff4de6f59565f16d1df0e --- modules/gui/macosx/playlist.m | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/modules/gui/macosx/playlist.m b/modules/gui/macosx/playlist.m index d0f5466..a5214da 100644 --- a/modules/gui/macosx/playlist.m +++ b/modules/gui/macosx/playlist.m @@ -672,15 +672,14 @@ deleted. We don't do it when not required since this verification takes quite a long time on big playlists (yes, pretty hacky). */ -- (BOOL)isItem: (playlist_item_t *)p_item - inNode: (playlist_item_t *)p_node - checkItemExistence:(BOOL)b_check - locked:(BOOL)b_locked - +- (BOOL)isItem: (playlist_item_t *)p_item inNode: (playlist_item_t *)p_node checkItemExistence:(BOOL)b_check locked:(BOOL)b_locked { playlist_t * p_playlist = pl_Get( VLCIntf ); playlist_item_t *p_temp_item = p_item; + if (!p_node) + return NO; + if( p_node == p_item ) return YES; @@ -699,7 +698,8 @@ in the playlist. Any cleaner solution welcomed. */ for( i = 0; i < p_playlist->all_items.i_size; i++ ) { - if( ARRAY_VAL( p_playlist->all_items, i) == p_item ) break; + if( ARRAY_VAL( p_playlist->all_items, i) == p_item ) + break; else if ( i == p_playlist->all_items.i_size - 1 ) { if(!b_locked) PL_UNLOCK; @@ -722,13 +722,6 @@ return NO; } -- (BOOL)isItem: (playlist_item_t *)p_item - inNode: (playlist_item_t *)p_node - checkItemExistence:(BOOL)b_check -{ - return [self isItem:p_item inNode:p_node checkItemExistence:b_check locked:NO]; -} - /* This method is useful for instance to remove the selected children of an already selected node */ - (void)removeItemsFrom:(id)o_items ifChildrenOf:(id)o_nodes @@ -1459,8 +1452,7 @@ o_playing_item = [o_outline_dict objectForKey: [NSString stringWithFormat:@"%p", playlist_CurrentPlayingItem( p_playlist )]]; PL_UNLOCK; - if( [self isItem: [o_playing_item pointerValue] inNode: - [item pointerValue] checkItemExistence: YES] + if( [self isItem: [o_playing_item pointerValue] inNode: [item pointerValue] checkItemExistence:YES locked:NO] || [o_playing_item isEqual: item] ) { [cell setFont: [[NSFontManager sharedFontManager] convertFont:[cell font] toHaveTrait:NSBoldFontMask]]; @@ -1604,8 +1596,8 @@ /* We refuse to drop an item in anything else than a child of the General Node. We still accept items that would be root nodes of the outlineview however, to allow drop in an empty playlist. */ - if( !( ([self isItem: [item pointerValue] inNode: p_playlist->p_local_category checkItemExistence: NO] || - ( var_CreateGetBool( p_playlist, "media-library" ) && [self isItem: [item pointerValue] inNode: p_playlist->p_ml_category checkItemExistence: NO] ) ) || item == nil ) ) + if( !( ([self isItem: [item pointerValue] inNode: p_playlist->p_local_category checkItemExistence: NO locked: NO] || + ( var_CreateGetBool( p_playlist, "media-library" ) && [self isItem: [item pointerValue] inNode: p_playlist->p_ml_category checkItemExistence: NO locked: NO] ) ) || item == nil ) ) { return NSDragOperationNone; } @@ -1617,9 +1609,7 @@ for( NSUInteger i = 0 ; i < count ; i++ ) { /* We refuse to Drop in a child of an item we are moving */ - if( [self isItem: [item pointerValue] inNode: - [[o_nodes_array objectAtIndex: i] pointerValue] - checkItemExistence: NO] ) + if( [self isItem: [item pointerValue] inNode: [[o_nodes_array objectAtIndex: i] pointerValue] checkItemExistence: NO locked:NO] ) { return NSDragOperationNone; } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
