def displayTime(self): '''affiche temps et update progress bar''' self.value = time.time() self.strValue.set("{0} / {1} (min)".format(Util.secToms(self.value- self.debuttime),\ Util.secToms(self.duree))) self["value"] = ((self.value - self.debuttime) / self.duree) * 100 #pourcentage du temps ecoule #self.progress.update() if self.value < self.maxtime and not self.ordreStop: # read more bytes after 300 ms self.after(300, self.displayTime)
def ajouterVideoPL(self, evt): ''' methode qui prend la selection video de la liste IHM et l'ajoute en fin de playlist de l'IHM ''' # get the line's text listWidget = self.bibliIHM.getId('listVideos') plIHM = self.bibliIHM.getId('listPlL5C3') duree = self.bibliIHM.getId('entryDureePL').get() #la duree de la PL est la somme des durees des videos dureeEnSecondes = int(Util.minTosec(duree)) videosIHM = self._getCurrentVideoBibli(oneSelectionOnly=False) for i,selVideoIHM in enumerate(videosIHM): selVideoObj = self.bm.rechercherVideo(selVideoIHM) #controler que la video selectionnee n'est pas une pub inactive (couleur yellow3) if self.bm.getColor(selVideoObj)=='yellow3': raise CineException('PubOutOfDate') if selVideoObj.duree ==0: raise CineException('VideoDureeZero') index = listWidget.curselection()[i] bgVideo = listWidget.itemcget(index, "bg") #permet de recopier l'attribut couleur sur la PL plIHM.insert(tk.END, selVideoIHM) plIHM.itemconfig(tk.END, bg=bgVideo) #mettre a jour la duree PL dureeEnSecondes += selVideoObj.duree self.__setChampDisabledValue('entryDureePL', Util.secToms(dureeEnSecondes))
def supprimerVideoPL(self, playlistIHM): ''' methode qui supprime la selection courante de la playlist p1: evt touche suppr p2, playlistIHM ''' if playlistIHM.curselection(): #au moins un element dans la liste #on actualise la duree pl en soustrayant la duree de la video supprimee if playlistIHM.size() ==1: #on supprime la derniere video donc on remet a blanc self.__setChampDisabledValue('entryDureePL', '') else: index = playlistIHM.curselection()[0] # il faut calculer la nouvelle duree en soustrayant selVideoIHM = playlistIHM.get(index) try: selVideoObj = self.bm.rechercherVideo(selVideoIHM) duree = self.bibliIHM.getId('entryDureePL').get() dureeEnSecondes = int(Util.minTosec(duree)) dureeEnSecondes -= selVideoObj.duree self.__setChampDisabledValue('entryDureePL', Util.secToms(dureeEnSecondes)) except CineException: #Cas anormal ou l'objet video n'a pas ete trouve #on ne bloque pas mais on affiche juste un message print ('probleme de recherche video obj') playlistIHM.delete(playlistIHM.curselection()[0])
def chargerPL(self, pnomPL=None): ''' p1 si à l'init de l'ihm pour charger la playlist du jour methode qui ouvre une boite dialogue pour selectionner fichier playlist remplit les widgets afferent à la playlist à partir de l'objet modele playlist ''' repPL=Util.configValue('commun', 'repertoirePL') if pnomPL: nomficPL=repPL+pnomPL else: #boite de dialogue selection de fichier .obj nomficPL = askopenfilename(title="Ouvrir le fichier playlist:", initialdir=repPL, \ filetypes = [("Fichiers Playlist","*.obj")]) if len(nomficPL) > 0: plAChargee = self.pm.load(nomficPL) #charger les zones de la pl (nomFilm, date, heure) = self.pm.calculerNomIHMPL(plAChargee) entryDate=self.bibliIHM.getId('dateDiffu') entryDate.delete(0, tk.END) entryDate.insert(0,date+heure) entryVideoPL = self.bibliIHM.getId('entryVideoPL') self.__setChampDisabledValue('entryVideoPL', nomFilm) playlistIHM = self.bibliIHM.getId('listPlL5C3') self.viderPL(playlistIHM) #ajouter les videos PlayList dureePL=0 for video in plAChargee.videos: playlistIHM.insert(tk.END, video.getNom()) playlistIHM.itemconfig(tk.END, bg=self.bm.getColor(video)) dureePL+=video.duree self.__setChampDisabledValue('entryDureePL', Util.secToms(dureePL)) #charger la frame affiche film oeuvre = None if entryVideoPL.get(): #si le champ est renseigne alors l'oeuvre fait obligatoirement partie du fichier serialise baPL = self.bm.rechercherVideo(entryVideoPL.get()) #la video est forcement de type BA oeuvre = baPL.oeuvreCinema #on teste au cas ou if oeuvre: self._majAfficheOeuvreCinema(oeuvre) else: '''on peut rechercher affiche uniquement avec date et heure pl''' oeuvre = self.__calculerOeuvreFilmWeb()