]> git.sesse.net Git - vlc/commitdiff
macosx: do not allow playlist item deletion for sd modules
authorDavid Fuhrmann <dfuhrmann@videolan.org>
Tue, 11 Nov 2014 10:24:45 +0000 (11:24 +0100)
committerDavid Fuhrmann <dfuhrmann@videolan.org>
Tue, 11 Nov 2014 11:21:34 +0000 (12:21 +0100)
close #12423

modules/gui/macosx/playlist.m

index 57f7ae9afeaaf02174249278f375113120aec3f0..38643c46482d24c60368d05e831252af1ef6c078 100644 (file)
 {
     int i_count;
     NSIndexSet *o_selected_indexes;
-    playlist_t * p_playlist;
     intf_thread_t * p_intf = VLCIntf;
+    playlist_t * p_playlist = pl_Get(p_intf);
+
+    // check if deletion is allowed
+    if ([self currentPlaylistRoot] != p_playlist->p_local_category && [self currentPlaylistRoot] != p_playlist->p_ml_category)
+        return;
 
     o_selected_indexes = [o_outline_view selectedRowIndexes];
     i_count = [o_selected_indexes count];
     if (retainedRowSelection == NSNotFound)
         retainedRowSelection = 0;
 
-    p_playlist = pl_Get(p_intf);
 
     NSUInteger indexes[i_count];
     if (i_count == [o_outline_view numberOfRows]) {
     b_item_sel = (row != -1 && [o_outline_view selectedRow] != -1);
     b_rows = [o_outline_view numberOfRows] != 0;
 
+    playlist_t *p_playlist = pl_Get(VLCIntf);
+    bool b_del_allowed = [self currentPlaylistRoot] == p_playlist->p_local_category || [self currentPlaylistRoot] == p_playlist->p_ml_category;
+
     [o_mi_play setEnabled: b_item_sel];
-    [o_mi_delete setEnabled: b_item_sel];
+    [o_mi_delete setEnabled: b_item_sel && b_del_allowed];
     [o_mi_selectall setEnabled: b_rows];
     [o_mi_info setEnabled: b_item_sel];
     [o_mi_preparse setEnabled: b_item_sel];