Option to unset album art in download dialog
authorIvan Frade <ivan.frade@nokia.com>
Thu, 21 Jan 2010 20:05:42 +0000 (22:05 +0200)
committerIvan Frade <ivan.frade@nokia.com>
Thu, 21 Jan 2010 20:05:42 +0000 (22:05 +0200)
Added a 6th option in the row with the default album-art icon.
If selected, remove the album-art and thumbnail for that album.

src/aa_selection_dialog.py
src/album_art_panel.py
src/album_art_thread.py

index 50fcae6..1477b48 100644 (file)
@@ -14,6 +14,7 @@ class AlbumArtSelectionDialog (gtk.Dialog):
                              "Select album art", parent,
                              gtk.DIALOG_DESTROY_WITH_PARENT,
                              (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
+        self.DEFAULT_ALBUM = size+1
         self.artist = artist
         self.album = album
         self.size = size
@@ -50,6 +51,22 @@ class AlbumArtSelectionDialog (gtk.Dialog):
             self.event_boxes.append (event_box)
             
             hbox.pack_start (event_box, expand=False, fill=True)
+            
+        # default empty option
+        img = gtk.Image ()
+        img.set_from_icon_name ("mediaplayer_default_album", gtk.ICON_SIZE_MENU)
+        img.set_pixel_size (124)
+        #img.set_size_request (124, 124)
+        self.images.append (img)
+
+        event_box = gtk.EventBox ()
+        event_box.add (img)
+        event_box.connect ("button-release-event", self.click_on_img, self.DEFAULT_ALBUM)
+        event_box.set_sensitive (True)
+        self.event_boxes.append (event_box)
+            
+        hbox.pack_start (event_box, expand=False, fill=True)
+        
 
         self.vbox.add (hbox)
 
@@ -78,10 +95,15 @@ class AlbumArtSelectionDialog (gtk.Dialog):
 
 
     def click_on_img (self, widget, event, position):
-        img, thumb = self.paths[position]
-        self.selection_img, self.selection_thumb = self.downloader.save_alternative (self.artist,
-                                                                                     self.album,
-                                                                                     img, thumb)
+        if (position == self.DEFAULT_ALBUM):
+            self.selection_img = None
+            self.selection_thumb = None
+            self.downloader.reset_alternative (self.artist, self.album)
+        else:
+            img, thumb = self.paths[position]
+            self.selection_img, self.selection_thumb = self.downloader.save_alternative (self.artist,
+                                                                                         self.album,
+                                                                                         img, thumb)
         self.response (position)
 
     def get_selection (self):
@@ -108,6 +130,8 @@ if __name__ == "__main__":
                 yield a
         def save_alternative (self, artist, album, img, thumb):
             return ("/home/user/.cache/media-art/" + img, "/home/user/.thumbnails/normal/" + thumb)
+        def reset_alternative (self, artist, album):
+            print "Removing the album-art and the thumbnail"
                               
 
     def clicked_button (self):
index af7fce0..d9e1de1 100644 (file)
@@ -74,6 +74,8 @@ class MussorgskyAlbumArtPanel (hildon.StackableWindow):
             if img and thumb:
                 pixbuf = gtk.gdk.pixbuf_new_from_file_at_size (thumb, 64, 64)
                 treeview.get_model ().set (it, 1, pixbuf)
+            else:
+                treeview.get_model ().set (it, 1, None)
         dialog.destroy ()
             
 if __name__ == "__main__":
index dfd6b67..2b2dc25 100755 (executable)
@@ -16,6 +16,7 @@ try:
     import PIL
     import Image
 except ImportError:
+    import sys
     print "Please install python-imaging package"
     sys.exit (-1)
 
@@ -149,6 +150,12 @@ class MussorgskyAlbumArt:
 
         return (filename, thumbnail)
 
+    def reset_alternative (self, artist, album):
+
+        for filepath in [getCoverArtFileName (album),
+                         getCoverArtThumbFileName (album)]:
+            if os.path.exists (filepath):
+                os.remove (filepath)
 
     def __msn_images (self, artist, album):