@@ -30,6 +30,7 @@ @interface TrackContextMenu()<NSMenuDelegate>
30
30
@property (nonatomic ) NSMenuItem *addToFrontOfQueueItem;
31
31
@property (nonatomic ) NSMenuItem *addToQueueItem;
32
32
@property (nonatomic ) NSMenuItem *removeFromQueueItem;
33
+ @property (nonatomic ) NSMenuItem *removeFromPlaylistItem;
33
34
@property (nonatomic ) NSMenuItem *convertItem;
34
35
35
36
@property (nonatomic ) NSMenuItem *rgScanPerFileItem;
@@ -139,6 +140,10 @@ - (void)update:(ddb_playlist_t *)playlist actionContext:(ddb_action_context_t)ac
139
140
self.removeFromQueueItem = [self addItemWithTitle: @" Remove from Playback Queue" action: @selector (removeFromPlaybackQueue ) keyEquivalent: @" " ];
140
141
self.removeFromQueueItem .target = self;
141
142
143
+ self.removeFromPlaylistItem = [self addItemWithTitle: @" Delete" action: @selector (delete: ) keyEquivalent: @" \b " ];
144
+ self.removeFromPlaylistItem .target = self;
145
+ self.removeFromPlaylistItem .keyEquivalentModifierMask = 0 ;
146
+
142
147
[self addItem: NSMenuItem .separatorItem];
143
148
144
149
self.convertItem = [self addItemWithTitle: @" Convert" action: @selector (convertSelection ) keyEquivalent: @" " ];
@@ -566,4 +571,12 @@ - (void)trackProperties {
566
571
[((id <TrackContextMenuDelegate>)self .delegate) trackContextMenuShowTrackProperties: self ];
567
572
}
568
573
574
+ - (void )delete : (id )sender {
575
+ [self forEachTrack: ^BOOL (DB_playItem_t *it) {
576
+ deadbeef->plt_remove_item (self.playlist , it);
577
+ return YES ;
578
+ }];
579
+ deadbeef->sendmessage (DB_EV_PLAYLISTCHANGED, 0 , DDB_PLAYLIST_CHANGE_CONTENT, 0 );
580
+ }
581
+
569
582
@end
0 commit comments