#from __future__ import unicode_literals # -*- coding: utf-8 -*- from __future__ import division from time import strftime, localtime import os from PyQt4.QtCore import * from PyQt4.QtGui import * from ui.ecran_chargerPlateau import Ui_chp_fenetre from outilsSvg import * class EcranChargerPlateau(QDialog): """interface de creation/chargement de plateau""" def __init__(self, fenetrePrincipale, terrain=None, parent=None): """initialisation de la fenetre""" super (EcranChargerPlateau, self).__init__() self.fenetre = fenetrePrincipale self.createWidgets() self.majAffichage() def createWidgets(self): """construction de l'interface""" #construction de l'interface self.ui = Ui_chp_fenetre() self.ui.setupUi(self) self.majListeChargement() self.connect(self.ui.chp_supprimer, SIGNAL("clicked()"), self.supprimerPlateau) self.connect(self.ui.chp_ok, SIGNAL("clicked()"), self.charger) self.connect(self.ui.chp_chapitre, SIGNAL("valueChanged(int)"), self.majListeChargement) self.connect(self.ui.chp_toutAfficher, SIGNAL("stateChanged(int)"), self.majListeChargement) self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.focusBoutonCharger) self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.majAffichage) self.connect(self.ui.chp_liste, SIGNAL("cellDoubleClicked(int,int)"), self.charger) def charger(self): """charge le plateau selectionne""" index = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0) self.fenetre.chargerPlateau(index) self.done(1) def supprimerPlateau(self): """supprime le plateau selectionne""" reponse = QMessageBox.question(self, 'Avertissement', QString().fromUtf8("Etes-vous sûr de vouloir supprimer ce plateau?"), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reponse == QMessageBox.Yes: index = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0) os.remove("parties\\{}\\svg\\{}.p".format(self.fenetre.partie, index)) supprSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie), index) self.majListeChargement() def majAffichage(self): self.ui.chp_ok.setEnabled(self.ui.chp_liste.currentRow()>=0) self.ui.chp_supprimer.setEnabled(self.ui.chp_liste.currentRow()>=0) def focusBoutonCharger(self): self.ui.chp_ok.setFocus() def majListeChargement(self): """remplit ou maj la liste des plateaux sauvegardes""" #on met a jour la largeur des colonnes largeurs = [0, 30, 30, 310, 100, 0] for col in self.ui.chp_liste.colonnes(): self.ui.chp_liste.setColumnWidth(col, largeurs[col]); self.ui.chp_liste.setSortingEnabled(False) self.ui.chp_liste.vider() infosSvg = afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie)) for id_svg in infosSvg: if infosSvg[id_svg]["chapitre"] == str(self.ui.chp_chapitre.value()) or bool(self.ui.chp_toutAfficher.checkState()) == True: ligne = self.ui.chp_liste.nouvelleLigneFin() self.ui.chp_liste.majTexte(ligne, 0, str(id_svg)) if infosSvg[id_svg]["public"] == True: icone = QIcon(":/interface/32/ressource/oeil_32.png") else: icone = QIcon(":/interface/32/ressource/oeilBarre2_32.png") item = QTableWidgetItem(icone, QString("")) self.ui.chp_liste.setItem(ligne, 1, item) self.ui.chp_liste.majTexte(ligne, 2, (str(infosSvg[id_svg]["chapitre"]))) self.ui.chp_liste.majTexte(ligne, 3, infosSvg[id_svg]["nom"]) self.ui.chp_liste.majTexte(ligne, 4, strftime('%d/%m/%y %H:%M',localtime(infosSvg[id_svg]["dateSvg"]))) self.ui.chp_liste.majData(ligne, 5, infosSvg[id_svg]["dateSvg"]) for col in self.ui.chp_liste.colonnes(): self.ui.chp_liste.sizeHintForColumn(col) #on trie par date self.ui.chp_liste.setSortingEnabled(True) self.ui.chp_liste.sortItems(5, 1) self.majAffichage()