#from __future__ import unicode_literals # -*- coding: utf-8 -*- import os from time import strftime, localtime from PyQt4.QtCore import SIGNAL, QString from PyQt4.QtGui import QDialog, QMessageBox, QIcon, QTableWidgetItem from lib.commun import rep from lib.mat import chargerMat from lib.outilsSvg import supprSvg, afficheSvg from mat import supprimerMat from ui.ecran_chargerPartie import Ui_chpt_fenetre class EcranChargerPartie(QDialog): """interface de creation/chargement de plateau""" def __init__(self, fenetre, parent=None): """initialisation de la fenetre""" super (EcranChargerPartie, self).__init__() self.fenetre = fenetre self._resultat = None self.createWidgets() self.majAffichage() def createWidgets(self): """construction de l'interface""" #construction de l'interface self.ui = Ui_chpt_fenetre() self.ui.setupUi(self) self.majListeChargement() self.connect(self.ui.chpt_supprimer, SIGNAL("clicked()"), self.supprimerPlateau) self.connect(self.ui.chpt_ok, SIGNAL("clicked()"), self.ok) self.connect(self.ui.chpt_liste, SIGNAL("cellClicked(int,int)"), self.majAffichage) self.connect(self.ui.chpt_liste, SIGNAL("cellDoubleClicked(int,int)"), self.ok) def ok(self): """renvoie l'identifiant de la partie selectionnee""" self._resultat = self.ui.chpt_liste.texte(self.ui.chpt_liste.currentRow(), 0) self.done(1) def resultat(self): return self._resultat def supprimerPlateau(self): """supprime le plateau selectionne""" reponse = QMessageBox.question(self, 'Avertissement', QString().fromUtf8("Etes-vous sûr de vouloir supprimer cette partie,\net tous les plateaux et personnages qu'elle contient?"), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reponse == QMessageBox.Yes: idM = self.ui.chpt_liste.texte(self.ui.chpt_liste.currentRow(), 0) rep = os.path.join(rep("app"), "{}\\".format(idM)) os.remove(rep) self.majListeChargement() def majAffichage(self): self.ui.chpt_ok.setEnabled(self.ui.chpt_liste.currentRow()>=0) self.ui.chpt_supprimer.setEnabled(self.ui.chpt_liste.currentRow()>=0) def majListeChargement(self): """remplit ou maj la liste des plateaux sauvegardes""" #on met a jour la largeur des colonnes largeurs = [0, 290, 90, 90, 0] for col in self.ui.chpt_liste.colonnes(): self.ui.chpt_liste.setColumnWidth(col, largeurs[col]); self.ui.chpt_liste.setSortingEnabled(False) self.ui.chpt_liste.vider() repParties = os.path.join( rep("app"), "parties\\" ) for repertoires in os.walk( repParties ): lstRep = repertoires[1] break for idPartie in lstRep: chemin = os.path.join( os.path.join( repParties, "{}\\".format(idPartie) ), "{}.dm".format(idPartie) ) partie = chargerMat( chemin ) if partie: ligne = self.ui.chpt_liste.nouvelleLigneFin() self.ui.chpt_liste.majTexte(ligne, 0, partie.idM()) self.ui.chpt_liste.majTexte(ligne, 1, partie.nom() ) self.ui.chpt_liste.majTexte(ligne, 2, strftime('%d/%m/%y %H:%M',localtime(partie.dateCreation() )) ) self.ui.chpt_liste.majTexte(ligne, 3, strftime('%d/%m/%y %H:%M',localtime(partie.dateMaj() )) ) self.ui.chpt_liste.majData(ligne, 4, partie.dateMaj() ) for col in self.ui.chpt_liste.colonnes(): self.ui.chpt_liste.sizeHintForColumn(col) #on trie par date self.ui.chpt_liste.setSortingEnabled(True) self.ui.chpt_liste.sortItems(4, 1) self.majAffichage()