Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import sys
- from mutagen.mp3 import MP3
- try:
- import pygtk
- pygtk.require("2.0")
- except:
- pass
- try:
- import gtk
- import gtk.glade
- except:
- sys.exit(1)
- class CreateurListeDeLecture:
- def __init__(self):
- self.gladefile = "CreateurListeDeLecture.glade"
- self.wTree = gtk.glade.XML(self.gladefile,"FenetrePrincipale")
- self.DicoEvenements()
- self.ReferencesWidgets()
- self.SetupTreeview()
- self.CheminCourant = ""
- self.LigneCourante = 0
- self.NombreDeLignes = 0
- def DicoEvenements(self):
- dict = {"on_MainWindow_destroy": gtk.main_quit,
- "on_boBtnQuitter_clicked": gtk.main_quit,
- "on_boBtnAjouter_clicked": self.on_boBtnAjouter_clicked,
- "on_boBtnSupprimer_clicked": self.on_boBtnSupprimer_clicked,
- "on_boBtnEffacer_clicked": self.on_boBtnEffacer_clicked,
- "on_boBtnHaut_clicked": self.on_boBtnHaut_clicked,
- "on_boBtnMonter_clicked": self.on_boBtnMonter_clicked,
- "on_boBtnDescendre_clicked": self.on_boBtnDescendre_clicked,
- "on_boBtnBas_clicked":self.on_boBtnBas_clicked,
- "on_boBtnAPropos_clicked": self.on_boBtnAPropos_clicked,
- "on_btnNomRepertoire_clicked": self.on_btnNomRepertoire_clicked,
- "on_btnSauvegarderListe_clicked": self.on_btnSauvegarderListe_clicked}
- self.wTree.signal_autoconnect(dict)
- def ReferencesWidgets(self):
- self.txtNomFichier = self.wTree.get_widget("txtNomFichier")
- self.txtChemin = self.wTree.get_widget("txtChemin")
- self.boBtnAjouter = self.wTree.get_widget("boBtnAjouter")
- self.boBtnSupprimer = self.wTree.get_widget("boBtnSupprimer")
- self.boBtnEffacer = self.wTree.get_widget("boBtnEffacer")
- self.boBtnQuitter = self.wTree.get_widget("boBtnQuitter")
- self.boBtnAPropos = self.wTree.get_widget("boBtnAPropos")
- self.boBtnHaut = self.wTree.get_widget("boBtnHaut")
- self.boBtnMonter = self.wTree.get_widget("boBtnMonter")
- self.boBtnDescendre = self.wTree.get_widget("boBtnDescendre")
- self.boBtnBas = self.wTree.get_widget("boBtnBas")
- self.btnNomRepertoire = self.wTree.get_widget("btnNomRepertoire")
- self.btnSauvegarderListe = self.wTree.get_widget("btnSauvegarderListe")
- self.sbar = self.wTree.get_widget("statusbar3")
- self.context_id = self.sbar.get_context_id("Statusbar")
- def SetupTreeview(self):
- self.cNomFic = 0
- self.cTypeFic = 1
- self.cCheminFic = 2
- self.sNomFic = "NomFichier"
- self.sTypeFic = "Type"
- self.sCheminFic = "Dossier"
- self.treeview = self.wTree.get_widget("treeview1")
- self.AjouterColonne(self.sNomFic,self.cNomFic)
- self.AjouterColonne(self.sTypeFic,self.cTypeFic)
- self.AjouterColonne(self.sCheminFic,self.cCheminFic)
- self.listeLecture = gtk.ListStore(str,str,str)
- self.treeview.set_model(self.listeLecture)
- self.treeview.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_BOTH)
- def AjouterColonne(self,titre,idColonne):
- colonne = gtk.TreeViewColumn(titre,gtk.CellRendererText(),text=idColonne)
- colonne.set_resizable(True)
- colonne.set_sort_column_id(idColonne)
- self.treeview.append_column(colonne)
- def on_boBtnAjouter_clicked(self,widget):
- #self.MessageBox("info","Clic sur bouton Ajouter...")
- fd = DialogueFichier()
- fichiersChoisis,self.CheminCourant = fd.AfficheDialogue(0,self.CheminCourant)
- ## for f in fichiersChoisis:
- ## print "Choix utilisateur : %s" % f
- ## print "Chemin courant : %s" % self.CheminCourant
- self.AjouterFichiers(fichiersChoisis)
- def on_boBtnSupprimer_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton Supprimer...")
- def on_boBtnEffacer_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton EffacerTout...")
- def on_boBtnHaut_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton Haut...")
- def on_boBtnMonter_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton Monter...")
- def on_boBtnDescendre_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton Descendre...")
- def on_boBtnBas_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton Bas...")
- def on_boBtnAPropos_clicked(self,widget):
- #self.MessageBox("info","Clic sur bouton APropos...")
- self.AfficherAPropos()
- def on_btnNomRepertoire_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton NomRepertoire...")
- def on_btnSauvegarderListe_clicked(self,widget):
- self.MessageBox("info","Clic sur bouton SauvegarderListe...")
- def AjouterFichiers(self,ListeFichiers):
- compteur = 0
- for f in ListeFichiers:
- debutExt = f.rfind(".")
- debutnomFic = f.rfind("/")
- extension = f[debutExt+1:]
- nomFic = f[debutnomFic+1:debutExt]
- cheminFic = f[:debutnomFic]
- data = [nomFic,extension,cheminFic]
- self.listeLecture.append(data)
- compteur += 1
- self.NombreDeLignes += compteur
- self.sbar.push(self.context_id,"%s fichiers ajoutes sur un total de %d" % (compteur,self.NombreDeLignes))
- def MessageBox(self,niveau,texte):
- if niveau == "info":
- dlg = gtk.MessageDialog(None,0,gtk.MESSAGE_INFO,gtk.BUTTONS_OK,texte)
- elif niveau == "warning":
- dlg = gtk.MessageDialog(None,0,gtk.MESSAGE_WARNING,gtk.BUTTONS_OK,texte)
- elif niveau == "error":
- dlg = gtk.MessageDialog(None,0,gtk.MESSAGE_ERROR,gtk.BUTTONS_OK,texte)
- elif niveau == "question":
- dlg = gtk.MessageDialog(None,0,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,texte)
- if niveau == "question":
- resp = dlg.run()
- dlg.destroy()
- return resp
- else:
- resp = dlg.run()
- dlg.destroy()
- def AfficherAPropos(self):
- apropos = gtk.AboutDialog()
- apropos.set_program_name("Createur de liste de lecture")
- apropos.set_version("1.0")
- apropos.set_copyright("(c) 2011 by Greg Walters")
- apropos.set_comments("Ecrit pour le Full Circle Magazine")
- apropos.set_website("http://thedesignatedgeek.com")
- apropos.run()
- apropos.destroy()
- class DialogueFichier:
- def AfficheDialogue(self,type,CheminCourant):
- if type == 0: # choix de fichiers
- dialogue = gtk.FileChooserDialog("Choisir les fichiers a ajouter...",None,
- gtk.FILE_CHOOSER_ACTION_OPEN,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OPEN, gtk.RESPONSE_OK))
- filtre = gtk.FileFilter()
- filtre.set_name("Fichiers musicaux")
- filtre.add_pattern("*.mp3")
- filtre.add_pattern("*.ogg")
- filtre.add_pattern("*.wav")
- dialogue.add_filter(filtre)
- filtre = gtk.FileFilter()
- filtre.set_name("Tous les fichiers")
- filtre.add_pattern("*")
- dialogue.add_filter(filtre)
- else: # choix de repertoire
- dialogue = gtk.FileChooserDialog("Choisir le repertoire de sauvegarde...",None,
- gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OPEN, gtk.RESPONSE_OK))
- dialogue.set_default_response(gtk.RESPONSE_OK)
- dialogue.set_select_multiple(True)
- if CheminCourant != "":
- dialogue.set_current_folder(CheminCourant)
- reponse = dialogue.run()
- if reponse == gtk.RESPONSE_OK:
- selectionFichiers = dialogue.get_filenames()
- CheminCourant = dialogue.get_current_folder()
- dialogue.destroy()
- return (selectionFichiers,CheminCourant)
- elif reponse == gtk.RESPONSE_CANCEL:
- print 'Annulation, aucun fichier choisi'
- dialogue.destroy()
- if __name__ == "__main__":
- createurLDL = CreateurListeDeLecture()
- gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement