Bugfix : doubleclick uniquement sur la liste.
[minwii.git] / src / minwii / widgets / songfilebrowser.py
index 6117218..2e5cc78 100755 (executable)
@@ -7,6 +7,7 @@ $URL$
 """
 
 import pygame
 """
 
 import pygame
+from pygame.locals import K_RETURN
 from pgu.gui import FileDialog
 import pgu.gui.basic as basic
 import pgu.gui.input as input
 from pgu.gui import FileDialog
 import pgu.gui.basic as basic
 import pgu.gui.input as input
@@ -58,7 +59,7 @@ class FileOpenDialog(FileDialog):
         self.body.tr()
         self.body.td(self.list, colspan=4, style=td_style)
         self.list.connect(CHANGE, self._item_select_changed_, None)
         self.body.tr()
         self.body.td(self.list, colspan=4, style=td_style)
         self.list.connect(CHANGE, self._item_select_changed_, None)
-        self.list.connect(CLICK, self._check_dbl_click_, None)
+        #self.list.connect(CLICK, self._check_dbl_click_, None)
         self._last_time_click = pygame.time.get_ticks()
         self.button_ok.connect(CLICK, self._button_okay_clicked_, None)
         self.body.tr()
         self._last_time_click = pygame.time.get_ticks()
         self.button_ok.connect(CLICK, self._button_okay_clicked_, None)
         self.body.tr()
@@ -265,6 +266,17 @@ class FileOpenDialog(FileDialog):
             self._button_okay_clicked_(None)
         else :
             self._last_time_click = pygame.time.get_ticks()
             self._button_okay_clicked_(None)
         else :
             self._last_time_click = pygame.time.get_ticks()
+    
+    def event(self, e) :
+        FileDialog.event(self, e)
+        
+        if e.type == CLICK and \
+           e.button == 1 and \
+           self.list.rect.collidepoint(e.pos) :
+            self._check_dbl_click_(e)
+        
+        if e.type == KEYDOWN and e.key == K_RETURN :
+            self._button_okay_clicked_(None)
             
 
 # utils
             
 
 # utils
@@ -294,8 +306,8 @@ def _recurseDecomposition(uc):
     fullDeco = u''.join(filter(lambda c : isPrintable(c), fullDeco))
     return fullDeco
 
     fullDeco = u''.join(filter(lambda c : isPrintable(c), fullDeco))
     return fullDeco
 
-def desacc(s) :
-    us = s.decode('utf-8', 'ignore')
+def desacc(s, encoding='iso-8859-1') :
+    us = s.decode(encoding, 'ignore')
     ret = []
     for uc in us :
         ret.append(_recurseDecomposition(uc))
     ret = []
     for uc in us :
         ret.append(_recurseDecomposition(uc))