| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- from __future__ import division
- from time import time, sleep, strftime, localtime
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- from ui.ecran_creationPlateau import Ui_creationPlateau
- from outilsSvg import *
- class EcranCreationPlateau(QDialog):
- """interface de creation/chargement de plateau"""
- def __init__(self, fenetrePrincipale, terrain=None, parent=None):
- """initialisation de la fenetre"""
- super (EcranCreationPlateau, self).__init__()
- self.fenetre = fenetrePrincipale
- self.couleur = QColor(0, 255, 0, 80)
- self.idSvgPlusRecent = None #id de la sauvegarde du plateau le plus recent
-
- self.createWidgets()
- self.majAffichage()
- self.focusBoutonChargerEC()
-
- def createWidgets(self):
- """construction de l'interface"""
- #construction de l'interface
- self.ui = Ui_creationPlateau()
- self.ui.setupUi(self)
-
- self.ui.couleurCasesPlateau.setStyleSheet("QLabel {backGround:%s}" %(self.couleur))
- self.majListeChargement()
- self.connect(self.ui.creerPlateau, SIGNAL("clicked()"), self.creerPlateau)
- self.connect(self.ui.nomPlateau, SIGNAL("textEdited(QString)"), self.focusBoutonCreer)
- self.connect(self.ui.nomPlateau, SIGNAL("textEdited(QString)"), self.majAffichage)
- self.connect(self.ui.listPlateau, SIGNAL("cellPressed(int, int)"), self.majAffichage)
- self.connect(self.ui.listPlateau, SIGNAL("cellPressed(int, int)"), self.focusBoutonCharger)
- self.connect(self.ui.selectionCouleur, SIGNAL("clicked()"), self.selectionCouleur)
- self.connect(self.ui.supprimerPlateau, SIGNAL("clicked()"), self.supprimerPlateau)
- self.connect(self.ui.chargerPlateau, SIGNAL("clicked()"), self.chargerPlateau)
- self.connect(self.ui.chargerPlateauEC, SIGNAL("clicked()"), self.chargerPlateauEC)
- self.connect(self.ui.chapitreChargementPlateau, SIGNAL("valueChanged(int)"), self.majListeChargement)
- self.connect(self.ui.toutAfficherPlateau, SIGNAL("stateChanged(int)"), self.majListeChargement)
- def creerPlateau(self):
- nom = self.ui.nomPlateau.text().toUtf8()
- largeur = self.ui.largeurPlateau.value()
- hauteur = self.ui.hauteurPlateau.value()
- chapitre = str(self.ui.chapitrePlateau.value())
- if self.ui.formeCase_hexagone.isChecked():
- formeCases = "H"
- else:
- formeCases = "C"
- ok = True
- if (largeur * hauteur) > 10000:
- reponse = QMessageBox.question(self, 'Message',
- "Attention ! \nLe nombre élevé de cases peut entrainer des ralentissements " \
- "importants...\nVoulez vous continuer?", QMessageBox.Yes |
- QMessageBox.No, QMessageBox.No)
- if reponse == QMessageBox.No:
- ok = False
- if ok == True:
- self.fenetre.creerPlateau(nom, chapitre, formeCases, largeur, hauteur, self.couleur)
- self.close()
- def chargerPlateau(self):
- """charge le plateau selectionne"""
- index = str(self.ui.listPlateau.item(self.ui.listPlateau.currentRow(), 0).text().toUtf8())
- self.fenetre.chargerPlateau(index)
- self.close()
- def chargerPlateauEC(self):
- """charge le plateau le pus recent"""
- if self.idSvgPlusRecent != None:
- self.fenetre.chargerPlateau(self.idSvgPlusRecent)
- self.close()
-
- def supprimerPlateau(self):
- """supprime le plateau selectionne"""
- reponse = QMessageBox.question(self, 'Message',
- "Etes vous sûr de vouloir supprimer ce plateau?", QMessageBox.Yes |
- QMessageBox.No, QMessageBox.No)
- if reponse == QMessageBox.Yes:
- index = str(self.ui.listPlateau.item(self.ui.listPlateau.currentRow(), 0).text().toUtf8())
- os.remove("parties\\{}\\svg\\{}.p".format(self.fenetre.partie, index))
- supprSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie), index)
- self.majListeChargement()
-
- def majListeChargement(self):
- """remplit ou maj la liste des plateaux sauvegardes"""
- #on met a jour la largeur des colonnes
- self.ui.listPlateau.setColumnWidth(0, 0) #colonne de l'index (invisible)
- self.ui.listPlateau.setColumnWidth(1, 55)
- self.ui.listPlateau.setColumnWidth(2, 110)
- self.ui.listPlateau.setColumnWidth(3, 60)
- self.ui.listPlateau.setColumnWidth(4, 80)
- self.ui.listPlateau.setColumnWidth(5, 50)
- self.ui.listPlateau.setColumnWidth(6, 50)
- ## self.ui.listPlateau.setColumnHidden(6, True)
- #on vide la liste si necessaire
- while self.ui.listPlateau.rowCount() > 0:
- self.ui.listPlateau.removeRow(0)
-
- infosSvg = afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie))
- ligne = 0
- for id_svg in infosSvg:
- if self.idSvgPlusRecent == None or infosSvg[id_svg]["dateSvg"] > infosSvg[self.idSvgPlusRecent]["dateSvg"]: self.idSvgPlusRecent = id_svg
-
- if infosSvg[id_svg]["chapitre"] == str(self.ui.chapitreChargementPlateau.value()) or bool(self.ui.toutAfficherPlateau.checkState()) == True:
- self.ui.listPlateau.insertRow(ligne)
- self.ui.listPlateau.setItem(ligne, 0, QTableWidgetItem(QString.fromUtf8(str(id_svg))))
- self.ui.listPlateau.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(" "+infosSvg[id_svg]["chapitre"])))
- self.ui.listPlateau.setItem(ligne, 2, QTableWidgetItem(QString.fromUtf8(infosSvg[id_svg]["nom"])))
- self.ui.listPlateau.setItem(ligne, 3, QTableWidgetItem(QString.fromUtf8(strftime('%d/%m/%y %H:%M',localtime(infosSvg[id_svg]["dateCreation"])))))
- self.ui.listPlateau.setItem(ligne, 4, QTableWidgetItem(QString.fromUtf8(strftime('%d/%m/%y %H:%M',localtime(infosSvg[id_svg]["dateSvg"])))))
- if infosSvg[id_svg]["public"] == True:
- txt = "Oui"
- else:
- txt = "Non"
- self.ui.listPlateau.setItem(ligne, 5, QTableWidgetItem(QString.fromUtf8(txt)))
- self.ui.listPlateau.setItem(ligne, 6, QTableWidgetItem(QString.fromUtf8(str(infosSvg[id_svg]["dateSvg"]))))
-
- ligne += 1
- for i in range(1,5):
- self.ui.listPlateau.sizeHintForColumn(i)
-
- #on trie par date
- ## trierTable(self.ui.listPlateau, 6, 1)
- def majAffichage(self):
- self.ui.creerPlateau.setEnabled(len(self.ui.nomPlateau.text().toUtf8()) > 0)
- self.ui.chargerPlateau.setEnabled(self.ui.listPlateau.currentRow()>=0)
- self.ui.supprimerPlateau.setEnabled(self.ui.listPlateau.currentRow()>=0)
- self.ui.chargerPlateauEC.setEnabled(self.ui.listPlateau.rowCount() > 0)
-
- def selectionCouleur(self):
- """selectionne la couleur dans la boite de dialogue dediee"""
- couleur = QColorDialog(self).getColor(QColor("white"), self)
- if couleur.isValid():
- nomCouleur = couleur.name()
- self.ui.couleurCasesPlateau.setStyleSheet("QLabel {backGround:%s}" %(nomCouleur))
- self.couleur = couleur
- def focusBoutonChargerEC(self):
- self.ui.chargerPlateauEC.setFocus()
- def focusBoutonCharger(self):
- self.ui.chargerPlateau.setFocus()
- def focusBoutonCreer(self):
- self.ui.creerPlateau.setFocus()
|