| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- from __future__ import division
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- from ui.ecran_editionDecor import Ui_editionDecor
- class EcranEditionDecors(QDialog):
- """interface de creation/edition de decors"""
- def __init__(self, decor=None, formeCases = "H", parent=None):
- """initialisation de la fenetre"""
- super (EcranEditionDecors, self).__init__()
- self.decor = decor
- self.pixGraphique = None
- self.formeCases = formeCases
- self.createWidgets()
-
- if decor == None:
- self.accesCreation()
- else:
- self.accesEdition()
- self.majAffichage("")
-
- def createWidgets(self):
- """construction de l'interface"""
- #construction de l'interface
- self.ui = Ui_editionDecor()
- self.ui.setupUi(self)
- self.connect(self.ui.enregistrerDecor, SIGNAL("clicked()"), self.enregistrer)
- self.connect(self.ui.annulerDecor, SIGNAL("clicked()"), self.annuler)
- self.connect(self.ui.supprimerDecor, SIGNAL("clicked()"), self.supprimer)
- self.connect(self.ui.idDecor, SIGNAL("textEdited(QString)"), self.majAffichage)
- self.connect(self.ui.nomDecor, SIGNAL("textEdited(QString)"), self.majAffichage)
- self.connect(self.ui.couleurDecor, SIGNAL("clicked()"), self.selectionCouleur)
- self.connect(self.ui.imgDecor, SIGNAL("textEdited(QString)"), self.majApercuImage)
- self.connect(self.ui.imgLogoDecor, SIGNAL("textEdited(QString)"), self.majApercuImage)
- self.connect(self.ui.imgAfficherDecor, SIGNAL("stateChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgPivoteDecor, SIGNAL("stateChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgMasqueDecor, SIGNAL("stateChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgTailleXDecor, SIGNAL("valueChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgTailleYDecor, SIGNAL("valueChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgPosXDecor, SIGNAL("valueChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgPosYDecor, SIGNAL("valueChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgRotationDecor, SIGNAL("valueChanged(int)"), self.majApercuImage)
- self.connect(self.ui.imgReinitDecor, SIGNAL("clicked()"), self.reinitImage)
- self.vueForme = VueEditionForme(self, self.formeCases)
- self.vueForme.creer()
-
- def accesEdition(self):
- """ouverture en mode edition"""
- self.ui.idDecor.setEnabled(True)
-
- self.ui.idDecor.setText(QString.fromUtf8(str(self.decor.id)))
- self.ui.nomDecor.setText(QString.fromUtf8(str(self.decor.nom)))
- if self.decor.couleur.isValid():
- self.ui.affichageCouleurDecor.setStyleSheet("QLabel {backGround:%s}" %(self.decor.couleur.name()))
- self.ui.imgLogoDecor.setText(QString.fromUtf8(str(self.decor.logo)))
- if self.decor.img["nom"] != self.decor.logo:
- self.ui.imgDecor.setText(QString.fromUtf8(str(self.decor.img["nom"])))
- self.ui.imgTailleXDecor.setValue(self.decor.img["kx"])
- self.ui.imgTailleYDecor.setValue(self.decor.img["ky"])
- self.ui.imgPosXDecor.setValue(self.decor.img["dx"])
- self.ui.imgPosYDecor.setValue(self.decor.img["dy"])
- self.ui.imgRotationDecor.setValue(self.decor.img["rotation"])
- self.ui.imgPivoteDecor.setChecked(self.decor.img["pivote"])
- self.ui.imgMasqueDecor.setChecked(self.decor.img["masqueAuto"])
-
- self.ui.hauteurDecor.setValue(self.decor.hauteur)
- self.ui.couvertDecor.setChecked(self.decor.couvert)
- self.ui.escaladeDecor.setChecked(self.decor.escalade)
- self.ui.franchissablePiedDecor.setChecked(self.decor.franchissablePied)
- self.ui.franchissableVolDecor.setChecked(self.decor.franchissableVol)
- self.ui.bruleDecor.setChecked(self.decor.brule)
-
- self.vueForme.majForme(self.decor.formeDef[self.formeCases])
- self.ui.supprimerDecor.setEnabled(True)
- self.ui.idDecor.setEnabled(False)
- self.majApercuImage()
- def accesCreation(self):
- """ouverture en mode creation"""
- self.decor = Decor()
- self.ui.idDecor.setEnabled(True)
- self.ui.idDecor.setText(QString.fromUtf8(str(self.nouvelIdCreature())))
- self.ui.idDecor.setEnabled(False)
- self.majApercuImage()
- def majAffichage(self, txt):
- """verifie la validite des saisies"""
- self.ui.enregistrerDecor.setEnabled(len(self.ui.idDecor.text().toUtf8()) > 0 and len(self.ui.nomDecor.text().toUtf8()) > 0)
- def nouvelIdCreature(self):
- """renvoie un identifiant pour un nouveau decor"""
- dicoSvg = afficheSvg("librairie\\decor")
- nouvelId = 1
- while str(nouvelId) in dicoSvg.keys():
- nouvelId += 1
- return str(nouvelId)
- 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.affichageCouleurDecor.setStyleSheet("QLabel {backGround:%s}" %(nomCouleur))
- self.decor.couleur = couleur
- def majApercuImage(self):
- """met a jour l'image sur l'apercu du pion"""
- if self.ui.imgAfficherDecor.isChecked():
- if len(str(self.ui.imgDecor.text().toUtf8())) > 0:
- img = str(self.ui.imgDecor.text().toUtf8())
- self.vueForme.majImage(img, self.ui.imgTailleXDecor.value() \
- , self.ui.imgTailleYDecor.value() \
- , self.ui.imgPosXDecor.value() \
- , self.ui.imgPosYDecor.value() \
- , self.ui.imgRotationDecor.value() \
- , self.ui.imgPivoteDecor.isChecked() \
- , self.ui.imgMasqueDecor.isChecked())
- else:
- img = str(self.ui.imgLogoDecor.text().toUtf8())
- self.vueForme.majImage(img)
- else:
- img = ""
- self.vueForme.majImage(img)
- def reinitImage(self):
- self.ui.imgTailleXDecor.setValue(10)
- self.ui.imgTailleYDecor.setValue(10)
- self.ui.imgPosXDecor.setValue(0)
- self.ui.imgPosYDecor.setValue(0)
- self.ui.imgRotationDecor.setValue(0)
- self.ui.imgPivoteDecor.setChecked(False)
- self.ui.imgMasqueDecor.setChecked(False)
- self.majApercuImage()
-
- def enregistrer(self):
- """enregistre le terrain cree/edite"""
- self.decor.id = str(self.ui.idDecor.text().toUtf8())
- self.decor.nom = str(self.ui.nomDecor.text().toUtf8())
- self.decor.logo = str(self.ui.imgLogoDecor.text().toUtf8())
- if len(str(self.ui.imgDecor.text().toUtf8())) > 0:
- self.decor.img["nom"] = str(self.ui.imgDecor.text().toUtf8())
- self.decor.img["kx"] = self.ui.imgTailleXDecor.value()
- self.decor.img["ky"] = self.ui.imgTailleYDecor.value()
- self.decor.img["dx"] = self.ui.imgPosXDecor.value()
- self.decor.img["dy"] = self.ui.imgPosYDecor.value()
- self.decor.img["rotation"] = self.ui.imgRotationDecor.value()
- self.decor.img["pivote"] = self.ui.imgPivoteDecor.isChecked()
- self.decor.img["masqueAuto"] = self.ui.imgMasqueDecor.isChecked()
- else:
- self.decor.img["nom"] = str(self.ui.imgLogoDecor.text().toUtf8())
- self.decor.img["kx"] = 10
- self.decor.img["ky"] = 10
- self.decor.img["dx"] = 0
- self.decor.img["dy"] = 0
- self.decor.img["rotation"] = 0
- self.decor.img["pivote"] = False
- self.decor.img["masqueAuto"] = self.ui.imgMasqueDecor.isChecked()
-
- self.decor.hauteur = int(self.ui.hauteurDecor.value())
- self.decor.couvert = self.ui.couvertDecor.isChecked()
- self.decor.brule = self.ui.bruleDecor.isChecked()
- self.decor.franchissablePied = self.ui.franchissablePiedDecor.isChecked()
- self.decor.franchissableVol = self.ui.franchissableVolDecor.isChecked()
- self.decor.escalade = self.ui.escaladeDecor.isChecked()
-
- self.decor.formeDef[self.formeCases] = self.vueForme.formeDef()
-
- enregistrer(self.decor.id, self.decor, "librairie\\decor")
- self.decor = None
- self.emit(SIGNAL("majListDecors()"))
- self.close()
- def supprimer(self):
- """supprimer l'enregistrement de ce terrain"""
- supprSvg("librairie\\decor", self.decor.id)
- self.emit(SIGNAL("majListDecors()"))
- self.close()
- def annuler(self):
- """annule la creation/edition"""
- self.decor = None
- self.close()
|