= "Modifications en cours.\n\n" \ "Êtes-vous sûr de vouloir continuer" \ " sans
enregistrer le fichier ?" reponse = QMessageBox.question(self,"Confirmation",
messageConfirmation,QMessageBox.Yes,QMessageBox.No) if reponse ==
QMessageBox.No: return (nomFichierBiblio,filtre) = QFileDialog.getOpenFileName(
self,"Ouvrir fichier bibliothèque", filter="Bibliothèque (*.bib);; Tout (*.*)") if
nomFichierBiblio: self.modeleTableBiblio = ModeleTableBiblio.creeDepuisFichier(
nomFichierBiblio) self.treeViewLivres.setModel(self.modeleTableBiblio)
self.treeViewLivres.selectionModel().selectionChanged.connect(
self.on_treeViewLivres_selectionChanged) self.nomFichierBiblio = nomFichierBiblio
self.modificationAEnregistrer(False) @pyqtSlot() def
on_actionEnregistrer_triggered(self): if self.nomFichierBiblio is None:
(nomFichierBiblio,filtre) = QFileDialog.getSaveFileName( self,"Enregistrer fichier",
filter="Bibliothèque (*.bib);; Tout (*.*)") if nomFichierBiblio: self.nomFichierBiblio =
nomFichierBiblio if self.nomFichierBiblio is not None:
self.modeleTableBiblio.enregistreDansFichier( self.nomFichierBiblio)
self.modificationAEnregistrer(False) @pyqtSlot() def
on_pushButtonNouveau_clicked(self):
self.treeViewLivres.selectionModel().clearSelection() self.effaceLivre() @pyqtSlot()
def on_pushButtonSauvegarder_clicked(self): livre = Livre( titre =
self.lineEditTitre.text(), auteur = self.lineEditAuteur.text(), editeur =
self.lineEditEditeur.text(), genre = self.comboBoxGenre.currentText(), annee =
self.dateEditAnnee.date().year(), resume = self.plainTextEditResume.toPlainText(),
prix = self.doubleSpinBoxPrix.value() ) selectionModel =
self.treeViewLivres.selectionModel() indexesSelectionnes =
selectionModel.selectedRows() if len(indexesSelectionnes) == 0:
self.modeleTableBiblio.ajouteLivre(livre) self.on_pushButtonNouveau_clicked() else:
indiceLivreSelectionne = indexesSelectionnes[0].row()
self.modeleTableBiblio.remplaceLivre(indiceLivreSelectionne, livre)
self.modificationAEnregistrer(True) @pyqtSlot() def
on_pushButtonSupprimer_clicked(self): selectionModel =
self.treeViewLivres.selectionModel() indexesSelectionnes =
selectionModel.selectedRows() if len(indexesSelectionnes) > 0:
indiceLivreSelectionne = indexesSelectionnes[0].row()
self.modeleTableBiblio.supprimeLivre(indiceLivreSelectionne)
self.modificationAEnregistrer(True)
Voici des explications sur les points nouveaux importants dans le listing qui précède.
L'attribut nomFichierBiblio est le nom complet du fichier bibliothèque ouvert ; il
est mis à None au début pour signifier qu'aucun fichier n'est encore ouvert. Ce nom
123
Précédent

- 124/494

Suivant