| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- from __future__ import division
- import os
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- from Terrain import Terrain
- from ui.ecran_editionTerrain import Ui_et_fenetre
- from outilsSvg import *
- import rsc
- class EcranEditionTerrain(QDialog):
- """interface de creation/edition de terrains"""
- def __init__(self, terrain=None, parent=None):
- """initialisation de la fenetre"""
- super (EcranEditionTerrain, self).__init__()
- self.createWidgets()
- self.terrain = terrain
- if terrain == None:
- self.terrain = Terrain()
- else:
- self.accesEdition()
- self.majAffichage("")
-
- def createWidgets(self):
- """construction de l'interface"""
- #construction de l'interface
- self.ui = Ui_et_fenetre()
- self.ui.setupUi(self)
- self.connect(self.ui.et_enregistrer, SIGNAL("clicked()"), self.enregistrer)
- self.connect(self.ui.et_annuler, SIGNAL("clicked()"), self.annuler)
- self.connect(self.ui.et_supprimer, SIGNAL("clicked()"), self.supprimer)
- self.connect(self.ui.et_nom, SIGNAL("textEdited(QString)"), self.majAffichage)
- self.connect(self.ui.et_selectionCouleur, SIGNAL("clicked()"), self.selectionCouleur)
- self.connect(self.ui.et_selectionFichier, SIGNAL("clicked()"), self.selectionFichier)
-
- def accesEdition(self):
- """ouverture en mode edition"""
- self.ui.et_nom.setText(QString.fromUtf8(str(self.terrain.nom)))
- if self.terrain.imgTexture.estValide():
- self.ui.et_apercu.chargerImage(self.terrain.imgTexture)
- else:
- if self.terrain.couleur.isValid():
- self.ui.et_apercu.setText(QString(""))
- self.ui.et_apercu.setStyleSheet("QLabel {backGround:%s}" %(self.terrain.couleur.name()))
- self.ui.et_depAucun.setChecked(self.terrain.franchissable)
- self.ui.et_supprimer.setEnabled(True)
- def majAffichage(self, txt):
- """verifie la validite des saisies"""
- self.ui.et_enregistrer.setEnabled(len(self.ui.et_nom.text().toUtf8()) > 0)
- def nouvelIdTerrain(self):
- """renvoie un identifiant pour un nouveau terrain"""
- dicoSvg = afficheSvg("lib\\biblio\\terrain")
- 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.et_apercu.setText(QString(""))
- self.ui.et_apercu.setStyleSheet("QLabel {backGround:%s}" %(nomCouleur))
- self.terrain.couleur = couleur
- def selectionFichier(self):
- """selectionne le fichier de texture dans la boite de dialogue dediee"""
- img = rsc.selectionImage()
- if img:
- self.ui.et_apercu.chargerImage(img)
-
- def enregistrer(self):
- """enregistre le terrain cree/edite"""
- if not self.terrain.id:
- self.terrain.id = self.nouvelIdTerrain()
- self.terrain.nom = str(self.ui.et_nom.text().toUtf8())
- if self.ui.et_apercu.image():
- self.terrain.imgTexture = self.ui.et_apercu.image()
- self.terrain.franchissable = (not self.ui.et_depAucun.isChecked())
- enregistrer(self.terrain.id, self.terrain, "lib\\biblio\\terrain")
- self.terrain = None
- self.done(1)
- def supprimer(self):
- """supprimer l'enregistrement de ce terrain"""
- supprSvg("terrain", self.terrain.id)
- self.done(1)
- def annuler(self):
- """annule la creation/edition"""
- self.terrain = None
- self.done(0)
|