]> git.sesse.net Git - vlc/blobdiff - modules/gui/macosx/playlist.m
* don't add an 'empty folder' if the user hit cancel when asked to enter a name for it
[vlc] / modules / gui / macosx / playlist.m
index 5066bde0758d0f0865c63d7126032a72a600e95b..517d2889d67aa65d56050cb66b449b277eedf1ea 100644 (file)
@@ -50,7 +50,7 @@
 #import "controls.h"
 #import "vlc_osd.h"
 #import "misc.h"
-#import <vlc_interaction.h>
+#import <vlc_interface.h>
 
 /*****************************************************************************
  * VLCPlaylistView implementation 
@@ -242,7 +242,6 @@ NSLog( @"expandable" );
 - (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)o_tc byItem:(id)item
 {
     id o_value = nil;
-    intf_thread_t *p_intf = VLCIntf;
     playlist_item_t *p_item;
     
     if( item == nil || ![item isKindOfClass: [NSValue class]] ) return( @"error" );
@@ -257,13 +256,13 @@ NSLog( @"expandable" );
     if( [[o_tc identifier] isEqualToString:@"1"] )
     {
         /* sanity check to prevent the NSString class from crashing */
-        if( p_item->input.psz_name != NULL )
+        if( p_item->p_input->psz_name != NULL )
         {
             o_value = [NSString stringWithUTF8String:
-                p_item->input.psz_name];
+                p_item->p_input->psz_name];
             if( o_value == NULL )
                 o_value = [NSString stringWithCString:
-                    p_item->input.psz_name];
+                    p_item->p_input->psz_name];
         }
     }
     else if( [[o_tc identifier] isEqualToString:@"2"] && p_item->p_input->p_meta &&
@@ -380,7 +379,7 @@ NSLog( @"expandable" );
             while( p_parser->pp_shortcuts[++i] != NULL ); i--;
 
             /* Check whether to enable these menuitems */
-            objectname = i>=0 ? p_parser->pp_shortcuts[i] : p_parser->psz_object_name;
+            objectname = i>=0 ? (char *)p_parser->pp_shortcuts[i] : (char *)p_parser->psz_object_name;
             b_enabled = playlist_IsServicesDiscoveryLoaded( p_playlist, objectname );
             
             /* Create the menu entries used in the playlist menu */
@@ -477,13 +476,9 @@ NSLog( @"expandable" );
     else
     {
         if( playlist_IsEmpty( p_playlist ) )
-        {
             [o_status_field setStringValue: _NS("No items in the playlist")];
-        }
         else
-        {
             [o_status_field setStringValue: _NS("1 item in the playlist")];
-        }
     }
     vlc_object_release( p_playlist );
 }
@@ -751,7 +746,7 @@ NSLog( @"expandable" );
                 p_item = NULL;
             }
         }
-        playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, p_node, p_item );
+        playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, p_node, p_item );
     }
     vlc_object_release( p_playlist );
 }
@@ -859,7 +854,7 @@ NSLog( @"expandable" );
         }
         else
         {
-            playlist_LockDelete( p_playlist, p_item->i_id );
+            playlist_DeleteFromInput( p_playlist, p_item->p_input->i_id, VLC_FALSE );
         }
     }
     [self playlistUpdated];
@@ -1015,20 +1010,20 @@ NSLog( @"expandable" );
         }
 
         /* Add the item */
-        playlist_PlaylistAddInput( p_playlist, p_input, PLAYLIST_INSERT,
-                        i_position == -1 ? PLAYLIST_END : i_position + i_item );
+        playlist_AddInput( p_playlist, p_input, PLAYLIST_INSERT,
+             i_position == -1 ? PLAYLIST_END : i_position + i_item, VLC_TRUE );
 
         if( i_item == 0 && !b_enqueue )
         {
             playlist_item_t *p_item;
-            p_item = playlist_ItemGetByInput( p_playlist, p_input );
-            playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, NULL, p_item );
+            p_item = playlist_ItemGetByInput( p_playlist, p_input, VLC_TRUE );
+            playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, NULL, p_item );
         }
         else
         {
             playlist_item_t *p_item;
-            p_item = playlist_ItemGetByInput( p_playlist, p_input );
-            playlist_Control( p_playlist, PLAYLIST_PREPARSE, p_item );
+            p_item = playlist_ItemGetByInput( p_playlist, p_input, VLC_TRUE );
+            playlist_Control( p_playlist, PLAYLIST_PREPARSE, VLC_TRUE, p_item );
         }
     }
     [self playlistUpdated];
@@ -1063,14 +1058,14 @@ NSLog( @"expandable" );
         if( i_item == 0 && !b_enqueue )
         {
             playlist_item_t *p_item;
-            p_item = playlist_ItemGetByInput( p_playlist, p_input );
-            playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, NULL, p_item );
+            p_item = playlist_ItemGetByInput( p_playlist, p_input, VLC_TRUE );
+            playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, NULL, p_item );
         }
         else
         {
             playlist_item_t *p_item;
-            p_item = playlist_ItemGetByInput( p_playlist, p_input );
-            playlist_Control( p_playlist, PLAYLIST_PREPARSE, p_item );
+            p_item = playlist_ItemGetByInput( p_playlist, p_input, VLC_TRUE );
+            playlist_Control( p_playlist, PLAYLIST_PREPARSE, VLC_TRUE, p_item );
         }
     }
     [self playlistUpdated];
@@ -1346,15 +1341,19 @@ NSLog( @"expandable" );
     playlist_item_t * p_item;
     ret_v = intf_UserStringInput( p_playlist, _("New Node"), 
         _("Please enter a name for the new node."), &psz_name );
+
     if( psz_name != NULL && psz_name != "" )
         p_item = playlist_NodeCreate( p_playlist, psz_name, 
-                                            p_playlist->p_local_category );
-    else
+                                            p_playlist->p_local_category, 0 );
+    else if(! config_GetInt( p_playlist, "interact" ) )
+    {
+        /* in case that the interaction is disabled, just give it a bogus name */
         p_item = playlist_NodeCreate( p_playlist, _("Empty Folder"), 
-                                            p_playlist->p_local_category );
+                                            p_playlist->p_local_category, 0 );
+    }
 
     if(! p_item )
-        msg_Warn( VLCIntf, "node creation failed" );
+        msg_Warn( VLCIntf, "node creation failed or cancelled by user" );
 
     vlc_object_release( p_playlist );
     [ourPool release];