@@ -348,6 +348,11 @@ def open_release_page(self):
348
348
lookup .album_lookup (self .release )
349
349
350
350
351
+ def image_delete (obj , image ):
352
+ obj .metadata .images .strip_selected_image (image )
353
+ obj .metadata_images_changed .emit ()
354
+
355
+
351
356
def set_image_replace (obj , coverartimage ):
352
357
obj .metadata .images .strip_front_images ()
353
358
obj .metadata .images .append (coverartimage )
@@ -545,6 +550,43 @@ def load_remote_image(self, url, data):
545
550
log .warning ("Can't load image: %s" , e )
546
551
return
547
552
553
+ def delete_cover_art (self ):
554
+ if not self .item or not self .item .metadata .images :
555
+ return
556
+
557
+ cover_art_list = [image .source or _ ("Unnamed Cover Art" ) for image in self .item .metadata .images ]
558
+
559
+ selected_item , ok_pressed = QtWidgets .QInputDialog .getItem (self , _ ("Delete Cover Art" ),
560
+ _ ("Select the cover art image to delete:" ),
561
+ cover_art_list , 0 , False )
562
+ if ok_pressed :
563
+ selected_image_index = cover_art_list .index (selected_item )
564
+ selected_image = self .item .metadata .images [selected_image_index ]
565
+ if not isinstance (self .item , File ):
566
+ self .delete_cover_art_for_item (self .item , selected_image )
567
+ for file in self .get_files_to_process ():
568
+ self .delete_cover_art_for_item (file , selected_image )
569
+ self .update ()
570
+ self .item .update ()
571
+
572
+ def get_files_to_process (self ):
573
+ if isinstance (self .item , (Album , FileListItem )):
574
+ return self .item .iterfiles ()
575
+ elif isinstance (self .item , File ):
576
+ return [self .item ]
577
+
578
+ def delete_cover_art_for_item (self , item , selected_image ):
579
+ metadata = item .metadata
580
+ if not metadata or not metadata .images :
581
+ return
582
+
583
+ try :
584
+ image_delete (item , selected_image )
585
+ self .set_item (item )
586
+ self .cover_art .set_metadata (metadata )
587
+ except ValueError as e :
588
+ QtWidgets .QMessageBox .warning (self , _ ("Error" ), str (e ))
589
+
548
590
def _try_load_remote_image (self , url , data ):
549
591
coverartimage = CoverArtImage (
550
592
url = url .toString (),
@@ -634,6 +676,12 @@ def contextMenuEvent(self, event):
634
676
show_more_details_action .triggered .connect (self .show_cover_art_info )
635
677
menu .addAction (show_more_details_action )
636
678
679
+ if self .item and self .item .can_show_coverart :
680
+ name = _ ("Delete cover art" )
681
+ delete_cover_art_action = QtGui .QAction (name , self .parent )
682
+ delete_cover_art_action .triggered .connect (self .delete_cover_art )
683
+ menu .addAction (delete_cover_art_action )
684
+
637
685
if self .orig_cover_art .isVisible ():
638
686
name = _ ("Keep original cover art" )
639
687
use_orig_value_action = QtGui .QAction (name , self .parent )
0 commit comments