conservation des paramètres lors du retour à l'écran d'accueil.
authorpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Thu, 10 Jun 2010 15:28:11 +0000 (15:28 +0000)
committerpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Thu, 10 Jun 2010 15:28:11 +0000 (15:28 +0000)
git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@227 fe552daf-6dbe-4428-90eb-1537e0879342

src/minwii/app.py
src/minwii/widgets/home.py

index ad2e382..1160d5b 100755 (executable)
@@ -56,13 +56,16 @@ class MinWii(object):
         pygame.display.set_mode(self.screenResolution, displayFlags)
         pygame.display.set_caption('MINWii')
         WT = self.WT
         pygame.display.set_mode(self.screenResolution, displayFlags)
         pygame.display.set_caption('MINWii')
         WT = self.WT
+        
+        songFile, playMode, wiimoteIndex = '', 'NORMAL', 0
 
         while True :
 
 
         while True :
 
-            exit, songFile, playMode, selectedWiimoteIndex = self.selectSongAndOptions()
+            exit, songFile, playMode, wiimoteIndex = \
+                self.selectSongAndOptions(songFile, playMode, wiimoteIndex)
             if exit : break
             
             if exit : break
             
-            WT.selectWiimote(selectedWiimoteIndex)
+            WT.selectWiimote(wiimoteIndex)
             WT.resume()
 
             instrumentDescription = self.selectInstrument()
             WT.resume()
 
             instrumentDescription = self.selectInstrument()
@@ -75,7 +78,7 @@ class MinWii(object):
             WT.pause()
     
     
             WT.pause()
     
     
-    def selectSongAndOptions(self) :
+    def selectSongAndOptions(self, songFile, playMode, wiimoteIndex) :
         """ lance l'écran de paramétrage et retourne un tuple comportant :
             - drapeau de sortie de l'application (booléen)
             - chemin du fichier de la chanson
         """ lance l'écran de paramétrage et retourne un tuple comportant :
             - drapeau de sortie de l'application (booléen)
             - chemin du fichier de la chanson
@@ -83,6 +86,9 @@ class MinWii(object):
             - wiimote sélectionnée (entier)
         """
         home = Home(songPath=SONG_FILE_PATH,
             - wiimote sélectionnée (entier)
         """
         home = Home(songPath=SONG_FILE_PATH,
+                    songFile=songFile,
+                    playMode=playMode,
+                    wiimoteIndex=wiimoteIndex,
                     nwiimotes=self.nwiimotes)
         app = self.app
         home.connect(QUIT, app.quit)
                     nwiimotes=self.nwiimotes)
         app = self.app
         home.connect(QUIT, app.quit)
@@ -110,8 +116,8 @@ class MinWii(object):
         
         return (home.exitApp,
                 home.songFile,
         
         return (home.exitApp,
                 home.songFile,
-                home.modeSelect.value,
-                home.selectedWiimote.value)
+                home.selectedPlayMode,
+                home.selectedWiimoteIndex)
     
     def selectInstrument(self) :
         """ lance l'écran de sélection de l'instrument et retourne
     
     def selectInstrument(self) :
         """ lance l'écran de sélection de l'instrument et retourne
index c5d1ff5..44c101f 100755 (executable)
@@ -34,7 +34,7 @@ STYLE_RIGHT_COL = {#'border_right' : 2,
                    'padding_left' : 20}
 
 
                    'padding_left' : 20}
 
 
-class Home(Table) :
+class Home(object, Table) :
     """
     Écran de démarrage de minwii
     """
     """
     Écran de démarrage de minwii
     """
@@ -47,10 +47,12 @@ class Home(Table) :
         Table.__init__(self,**params)
         self.songPath = params.get('songPath', '.')
         self.nwiimotes = params.get('nwiimotes', 0)
         Table.__init__(self,**params)
         self.songPath = params.get('songPath', '.')
         self.nwiimotes = params.get('nwiimotes', 0)
-        self.songFile = None
+        self.songFile = params.get('songFile', '')
         self.spaceSize = (100,100)
         self.font = pygame.font.Font(None,70)
         self._fill()
         self.spaceSize = (100,100)
         self.font = pygame.font.Font(None,70)
         self._fill()
+        self.selectedPlayMode = params.get('playMode', 'NORMAL')
+        self.selectedWiimoteIndex = params.get('wiimoteIndex', 0)
         self._initLocalListeners()
 
 
         self._initLocalListeners()
 
 
@@ -64,7 +66,8 @@ class Home(Table) :
         self.td(self.browseButton,colspan=2, style = STYLE_RIGHT_COL)
 
         self.tr()
         self.td(self.browseButton,colspan=2, style = STYLE_RIGHT_COL)
 
         self.tr()
-        self.songTitle = self.createLabel(u' ')
+        caption = os.path.basename(self.songFile)
+        self.songTitle = self.createLabel(caption)
         st = STYLE_RIGHT_COL.copy()
         del st['padding_top']
         self.td(self.songTitle, style = st)
         st = STYLE_RIGHT_COL.copy()
         del st['padding_top']
         self.td(self.songTitle, style = st)
@@ -93,12 +96,24 @@ class Home(Table) :
         self.tr()
         self.quitButton = Button(self.createLabel("Quitter"))
         self.td(self.quitButton, style={'padding_top' : 50})
         self.tr()
         self.quitButton = Button(self.createLabel("Quitter"))
         self.td(self.quitButton, style={'padding_top' : 50})
-        self.playButton = Button(self.createLabel("Jouer"), disabled=True)
+        self.playButton = Button(self.createLabel("Jouer"), disabled=not self.songFile)
         self.td(self.playButton, style={'padding_top' : 50})
     
         self.td(self.playButton, style={'padding_top' : 50})
     
+    @property
+    def selectedPlayMode(self) :
+        return self.modeSelect.value
+    
+    @selectedPlayMode.setter
+    def selectedPlayMode(self, value) :
+        self.modeSelect.value = value
+    
     @property
     def selectedWiimoteIndex(self) :
         return self.selectedWiimote.value
     @property
     def selectedWiimoteIndex(self) :
         return self.selectedWiimote.value
+
+    @selectedWiimoteIndex.setter
+    def selectedWiimoteIndex(self, value) :
+        self.selectedWiimote.value = value
     
     def _initLocalListeners(self) :
         self.browseButton.connect(CLICK, self.open_file_browser)
     
     def _initLocalListeners(self) :
         self.browseButton.connect(CLICK, self.open_file_browser)