Ajout d'images d'illustration pour les chansons.
authorpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Fri, 1 Jul 2011 13:52:31 +0000 (13:52 +0000)
committerpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Fri, 1 Jul 2011 13:52:31 +0000 (13:52 +0000)
git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@363 fe552daf-6dbe-4428-90eb-1537e0879342

src/minwii/widgets/songfilebrowser.py

index 2e5cc78..cfa3022 100755 (executable)
@@ -24,6 +24,7 @@ from xml.etree import ElementTree
 from minwii.musicxml import musicXml2Song
 
 INDEX_TXT = 'index.txt'
+PICTURE_ITEM_SIZE = 64
 
 class FileOpenDialog(FileDialog):
     
@@ -69,14 +70,7 @@ class FileOpenDialog(FileDialog):
         self.value = None
         Dialog.__init__(self, self.title, self.body)
         
-#        FileDialog.__init__(self, 
-#                            title_txt="Ouvrir une chanson",
-#                            button_txt="Ouvrir",
-#                            path=path,
-#                            )
-#        self.list.style.width = 700
-#        self.list.style.height = 250
-    
+            
     def _list_dir_(self):
         self.input_dir.value = self.curdir
         self.input_dir.pos = len(self.curdir)
@@ -104,12 +98,26 @@ class FileOpenDialog(FileDialog):
                 continue
             filepath = os.path.join(self.curdir, i)
             xmlFiles.append(filepath)
-            # self.list.add(FileOpenDialog.getSongTitle(filepath), value=i)
         
         if xmlFiles :
             printableLines = self.getPrintableLines(xmlFiles)
             for l in printableLines :
-                self.list.add(l[0], value = l[1])
+                imgpath = os.path.splitext(os.path.join(self.curdir, l[1]))[0] + '.jpg'
+                if os.path.exists(imgpath) :
+                    img = pygame.image.load(imgpath)
+                    iw, ih = img.get_width(), img.get_height()
+                    style = {}
+                    if iw > ih :
+                        style['width'] = PICTURE_ITEM_SIZE
+                        style['height'] = PICTURE_ITEM_SIZE * float(ih) / iw
+                    else :
+                        style['heigth'] = PICTURE_ITEM_SIZE
+                        style['width'] = PICTURE_ITEM_SIZE * float(iw) / ih
+                        
+                    img = basic.Image(img, style=style)
+                    self.list.add(l[0], value = l[1], image = img)
+                else :
+                    self.list.add(l[0], value = l[1])
  
         self.list.set_vertical_scroll(0)