#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.outilsSvg import supprSvg, afficheSvg from mat import supprimerMat from ui.ecran_chargerPlateau import Ui_chp_fenetre class EcranChargerPlateau(QDialog): """interface de creation/chargement de plateau""" def __init__(self, fenetrePrincipale, parent=None): """initialisation de la fenetre""" super (EcranChargerPlateau, self).__init__() self.fenetre = fenetrePrincipale self._resultat = None 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.ok) 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.majAffichage) self.connect(self.ui.chp_liste, SIGNAL("cellDoubleClicked(int,int)"), self.ok) def ok(self): """charge le plateau selectionne""" self._resultat = self.ui.chp_liste.texte(self.ui.chp_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 ce plateau?"), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reponse == QMessageBox.Yes: idM = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0) supprimerMat(idM, "cbt") supprSvg(os.path.join(rep("cbt"), "infos_sauvegarde"), idM) 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 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(os.path.join(rep("cbt"), "infos_sauvegarde")) 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()