]> git.sesse.net Git - vlc/commitdiff
* Code simplification
authorBenjamin Pracht <bigben@videolan.org>
Sat, 11 Dec 2004 21:37:21 +0000 (21:37 +0000)
committerBenjamin Pracht <bigben@videolan.org>
Sat, 11 Dec 2004 21:37:21 +0000 (21:37 +0000)
modules/gui/macosx/playlist.h
modules/gui/macosx/playlist.m

index 66f05ee768ec41e40c622befdb54de831a35b0da..4926c651387f5f5e8ca3827a62f96f9aad61f9c1 100644 (file)
@@ -59,6 +59,7 @@
 - (IBAction)searchItem:(id)sender;
 
 - (void)initStrings;
+- (NSMenu *)menuForEvent:(NSEvent *)o_event;
 
 - (void)playlistUpdated;
 - (void)playItem:(id)sender;
index 85b64454229a4b99eec506b918aace39f1017f1e..c3ba6dc528563295ab4a040fabdd1628f573d611 100644 (file)
 
 - (bool)isItem:(playlist_item_t *)p_item inNode:(playlist_item_t *)p_node
 {
-    int i;
     playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST,
                                           FIND_ANYWHERE );
+    playlist_item_t * p_temp_item = p_item;
+
     if ( p_playlist == NULL )
     {
         return NO;
     }
 
-    for (i = 0 ; i < p_node->i_children ; i++)
+    while ( p_temp_item->i_parents > 0 )
     {
-        if (p_node->pp_children[i]->i_children > 0)
+        int i;
+        for (i = 0; i < p_temp_item->i_parents ; i++)
         {
-            if ([self isItem: p_item inNode:p_node->pp_children[i]] == YES)
+            if (p_temp_item->pp_parents[i]->i_view == VIEW_SIMPLE)
             {
-                vlc_object_release(p_playlist);
-                return YES;
+                if (p_temp_item->pp_parents[i]->p_parent == p_node)
+                {
+                    vlc_object_release(p_playlist);
+                    return YES;
+                }
+                else
+                {
+                    p_temp_item = p_temp_item->pp_parents[i]->p_parent;
+                    break;
+                }
             }
         }
-        else if (p_node->pp_children[i] == p_item)
-        {
-            vlc_object_release(p_playlist);
-            return YES;
-        }
     }
 
     vlc_object_release(p_playlist);
@@ -572,6 +577,45 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/
 
 }
 
+#if 0
+- (NSMenu *)menuForEvent:(NSEvent *)o_event
+{
+    intf_thread_t * p_intf = VLCIntf;
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                            FIND_ANYWHERE );
+
+    bool b_itemstate = FALSE;
+
+    NSPoint pt;
+    vlc_bool_t b_rows;
+    vlc_bool_t b_item_sel;
+
+    pt = [o_table_view convertPoint: [o_event locationInWindow]
+                                                 fromView: nil];
+    b_item_sel = ( [o_table_view rowAtPoint: pt] != -1 &&
+                   [o_table_view selectedRow] != -1 );
+    b_rows = [o_table_view numberOfRows] != 0;
+
+    [o_mi_play setEnabled: b_item_sel];
+    [o_mi_delete setEnabled: b_item_sel];
+    [o_mi_selectall setEnabled: b_rows];
+    [o_mi_info setEnabled: b_item_sel];
+    [o_mi_toggleItemsEnabled setEnabled: b_item_sel];
+    [o_mi_enableGroup setEnabled: b_item_sel];
+    [o_mi_disableGroup setEnabled: b_item_sel];
+
+    if (p_playlist)
+    {
+        b_itemstate = ([o_table_view selectedRow] > -1) ?
+            p_playlist->pp_items[[o_table_view selectedRow]]->b_enabled : FALSE;
+        vlc_object_release(p_playlist);
+    }
+
+    [o_mi_toggleItemsEnabled setState: b_itemstate];
+
+    return( o_ctx_menu );
+}
+#endif
 - (void)initDict
 {
     [o_outline_dict removeAllObjects];