#!/usr/bin/env python/ # -*- coding: latin-1 -*- import sys, os from ClassBddInsertion import * from ClassRecuperationDonnees import * try: import pygtk pygtk.require("2.0") except: pass try: import gtk import gtk.glade except: sys.exit(1) #Variables Global aux class de l'interface #Recuperation du fichier de la bdd bddName=os.path.dirname(sys.argv[0])+'/contact.db' #Recuperation de l'emplacement du fichier glade qqe soit le repertoir courant gladefile=os.path.dirname(sys.argv[0])+'/mainWindow.glade' class main: def __init__(self): #Charge le fichier glade self.wTree = gtk.glade.XML(gladefile,"MainWindow") #Creation des colonnes de la treeview: #1-Recuperation du widget self.vueContactList= self.wTree.get_widget("listContact") #2-Mise en place du modèle de treeview qui permet de définir le typê de treeview utilisé self.listType=gtk.ListStore(str,str,str,str,str,str, str) self.vueContactList.set_model(self.listType) #3-Ajout des différentes colonnes self.AjoutListColonne("nom", 0) self.AjoutListColonne("Type contact", 1) self.AjoutListColonne("Adresse 1", 3) self.AjoutListColonne("Adresse 2", 4) self.AjoutListColonne("Numero de telephone", 5) self.AjoutListColonne("Numero de portable", 6) #Remplissage de le treeview: self.voirContact() #Reglage des evenements events = { 'on_ajoutContact_clicked': self.ajoutContact, 'on_fermer_clicked':self.destroy, 'delete': self.destroy, 'on_imagemenuitem1_activate': self.ajoutContact} #Gestion des evenements self.wTree.signal_autoconnect(events) def AjoutListColonne(self, title, columnId): "Cette fonction permet d'ajouter des colonnes à notre treeview" column = gtk.TreeViewColumn(title, gtk.CellRendererText() , text=columnId) column.set_resizable(True) column.set_sort_column_id(columnId) self.vueContactList.append_column(column) def destroy(self, source=None, event=None): 'Ferme le programe' gtk.main_quit() def ajoutContact(self, source=None): "Ouverture de la boite de dialogue d'ajout" bteAjoutContact = ajoutContact() def voirContact(self, source=None): contacts=contactInfos(bddName) contacts.RecupererTout() test=['UN','Pourquoi','Chelou','Bizare','Etrange','dubitatif','Enervant'] for contact in contacts.repertoireInfos: self.listType.append(test) # print contact class ajoutContact: def __init__(self): self.ajoutWindow= gtk.glade.XML(gladefile, "ajoutContact") #Reglage des evenements events ={ 'on_Quitter_clicked': self.quitter, 'on_ajoutContact_delete_event': self.quitter, 'on_typeContact_changed': self.typeChange, 'on_Appliquer_clicked':self.insererDonnee, } #Permet de fermer la fenetre avec l'attribut destroy grace à la 'prise en charge' du widget 'ajoutcontact' self.fenetreDialogue = self.ajoutWindow.get_widget("ajoutContact") self.ajoutWindow.signal_autoconnect(events) #Mise en place des élements dans la combobox self.model_scrit = gtk.ListStore(str) self.model_scrit.append(["Contact physique"]) self.model_scrit.append(["Contact Moral"]) self.cb = self.ajoutWindow.get_widget("typeContact") self.cb.set_model(self.model_scrit) cell = gtk.CellRendererText() self.cb.pack_start(cell) self.cb.add_attribute(cell,'text',0) self.cb.set_active(-1) def quitter(self, evenement, donnees=None): 'ferme la fenetre de dialogue' self.fenetreDialogue.destroy() def typeChange(self, donnees=None): self.cb = self.ajoutWindow.get_widget("typeContact") self.comboActif=self.cb.get_active_text() #Recuperation du text selectionné dans la combo. if self.comboActif == "Contact Moral": self.fenetreDialogue.set_title('Ajout contact moral') self.ajoutWindow.get_widget("hMoralPhysique").show() self.moral = self.ajoutWindow.get_widget("moral").show() self.hTypeContact = self.ajoutWindow.get_widget("hTypeContact").hide() elif self.comboActif == "Contact physique": self.fenetreDialogue.set_title('Ajout contact physique') self.ajoutWindow.get_widget("hMoralPhysique").show() self.ajoutWindow.get_widget("physique").show() self.ajoutWindow.get_widget("hTypeContact").hide() def insererDonnee(self, donnees=None): "Utilisation de la class bddInsertion, permet d'inserer les données dans la base" self.bdd=bddInsertion(bddName) if self.fenetreDialogue.get_title()=='Ajout contact moral': self.bdd.insertionContactMoral('Contact moral', self.ajoutWindow.get_widget("nom").get_text(), self.ajoutWindow.get_widget("adresse1").get_text(),self.ajoutWindow.get_widget("adresse2").get_text(),self.ajoutWindow.get_widget("mel").get_text(),'mel', 'mailto', self.ajoutWindow.get_widget("siteInternet").get_text(),'site internet', 'http', 'fixe', self.ajoutWindow.get_widget("numeroTelephone").get_text(),'portable', self.ajoutWindow.get_widget("NumeroPortable").get_text(),self.ajoutWindow.get_widget("raisonSociale").get_text()) self.quitter(None) elif self.fenetreDialogue.get_title()=='Ajout contact physique': self.bdd.insertionContactPhysique('Contact physique', self.ajoutWindow.get_widget("nom").get_text(),self.ajoutWindow.get_widget("prenom").get_text(),self.ajoutWindow.get_widget("dateNaissance").get_text(),self.ajoutWindow.get_widget("sexe").get_text(),'fixe', self.ajoutWindow.get_widget("numeroTelephone").get_text(),'portable', self.ajoutWindow.get_widget("NumeroPortable").get_text(),self.ajoutWindow.get_widget("adresse1").get_text(),self.ajoutWindow.get_widget("adresse2").get_text(),self.ajoutWindow.get_widget("mel").get_text(),'mel', 'mailto', self.ajoutWindow.get_widget("siteInternet").get_text(),'site internet', 'http', ) self.quitter(None) else: print "Probleme dans la selection du type de contact"