Bläddra i källkod

Gestion des images (via le module rsc) terminee et opé

unknown 10 år sedan
förälder
incheckning
0f838c74fc

+ 2 - 2
lib/Case.py

@@ -251,8 +251,8 @@ class Case(QGraphicsPolygonItem):
     def majTerrain(self, terrain):
         if terrain != None: 
             self.terrain = terrain
-            if len(self.terrain.imgTexture) > 0:
-                self.setBrush(QBrush(QImage("img\\"+self.terrain.imgTexture)))
+            if self.terrain.imgTexture.estValide():
+                self.setBrush(QBrush(QImage(self.terrain.imgTexture.chemin())))
             else:
                 if self.terrain.couleur.isValid():
                      self.setBrush(QBrush(self.terrain.couleur))

+ 11 - 21
lib/EcranEditionCombattant.py

@@ -15,6 +15,7 @@ import regles
 import Actions
 from Objet import Objet
 import ui.dm as dm
+import rsc
 
 	
 class EcranEditionCombattant(QDialog):
@@ -72,7 +73,7 @@ class EcranEditionCombattant(QDialog):
         self.connect(self.ui.edc_couleur, SIGNAL("clicked()"), self.selectionCouleur)
         self.connect(self.ui.edc_image, SIGNAL("clicked()"), self.selectionImage)
 
-        self.connect(self.ui.edc_logo, SIGNAL("imageModifiee()"), self.logoModifie)
+        self.connect(self.ui.edc_logo, SIGNAL("clicked()"), self.selectionnerLogo)
         self.vueForme = VueEditionForme(self)
 
         self.construireListeAttributs()
@@ -140,8 +141,7 @@ class EcranEditionCombattant(QDialog):
 
         #autre
         self.majActivationEnregistrer()
-
-    
+        
 
     ### page apparence
     def majFormeCases(self):
@@ -164,28 +164,18 @@ class EcranEditionCombattant(QDialog):
         self.combattant.etiquette.txt = self.ui.edc_nom.texte()
         self.vueForme.chargerEtiquetteDef(self.combattant.etiquette)
 
-    def logoModifie(self):
-        if not len(self.combattant.img.nomFichier) > 0:
-            #si pas d'image attribuee au pion, on utilise le logo pour le pion
+    def selectionnerLogo(self):
+        img = rsc.selectionImage()
+        if img:
+            self.ui.edc_logo.chargerImage(img)
             self.vueForme.nouvelleImageDef(self.ui.edc_logo.image())
 
     def selectionImage(self):
         """selectionne le fichier image dans la boite de dialogue dediee"""
-        fichier = QFileDialog.getOpenFileName(self, 
-                                              "Selectionnez une image", 
-                                              "\\ressources", 
-                                              "Images (*.png *.jpg)")
-        if len(fichier) > 0:
-            pix = QPixmap(fichier)
-            if not pix.isNull():
-                self.vueForme.nouvelleImageDef(fichier)
-            else:    
-                dial = QMessageBox(self)
-                dial.setText("Format non reconnu")
-                dial.setWindowTitle("Erreur")
-                dial.setStandardButtons(QMessageBox.Ok)
-                dial.exec_()
-
+        img = rsc.selectionImage()
+        if img:
+            self.vueForme.nouvelleImageDef(img)
+        
     def selectionCouleur(self):
         """selectionne la couleur dans la boite de dialogue dediee"""
         couleur = QColorDialog(self).getColor(QColor("white"), self)

+ 11 - 16
lib/EcranEditionDecor.py

@@ -10,7 +10,7 @@ from EcranEditionObjet import EcranEditionObjet
 from outilsSvg import *
 from VueEditionForme import VueEditionForme
 from Objet import Objet
-
+import rsc
 
 class EcranEditionDecor(QDialog):
     """interface de creation/edition de decors"""
@@ -64,7 +64,7 @@ class EcranEditionDecor(QDialog):
         self.connect(self.ui.edd_couleur, SIGNAL("clicked()"), self.selectionCouleur)
         self.connect(self.ui.edd_image, SIGNAL("clicked()"), self.selectionImage)
 
-        self.connect(self.ui.edd_logo, SIGNAL("imageModifiee()"), self.logoModifie)
+        self.connect(self.ui.edd_logo, SIGNAL("clicked()"), self.selectionnerLogo)
         self.vueForme = VueEditionForme(self)
 
         self.construireInventaire()
@@ -125,22 +125,17 @@ class EcranEditionDecor(QDialog):
             #si pas d'image attribuee au pion, on utilise le logo pour le pion
             self.vueForme.nouvelleImageDef(self.ui.edd_logo.image())
 
+    def selectionnerLogo(self):
+        img = rsc.selectionImage()
+        if img:
+            self.ui.edd_logo.chargerImage(img)
+            self.vueForme.nouvelleImageDef(self.ui.edd_logo.image())
+
     def selectionImage(self):
         """selectionne le fichier image dans la boite de dialogue dediee"""
-        fichier = QFileDialog.getOpenFileName(self, 
-                                              "Selectionnez une image", 
-                                              "\\ressources", 
-                                              "Images (*.png *.jpg)")
-        if len(fichier) > 0:
-            pix = QPixmap(fichier)
-            if not pix.isNull():
-                self.vueForme.nouvelleImageDef(fichier)
-            else:    
-                dial = QMessageBox(self)
-                dial.setText("Format non reconnu")
-                dial.setWindowTitle("Erreur")
-                dial.setStandardButtons(QMessageBox.Ok)
-                dial.exec_()
+        img = rsc.selectionImage()
+        if img:
+            self.vueForme.nouvelleImageDef(img)
 
     def selectionCouleur(self):
         """selectionne la couleur dans la boite de dialogue dediee"""

+ 5 - 18
lib/EcranEditionTerrain.py

@@ -7,13 +7,13 @@ 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.nomImg = ""
         self.createWidgets()
         self.terrain = terrain
         if terrain == None:
@@ -82,29 +82,16 @@ class EcranEditionTerrain(QDialog):
 
     def selectionFichier(self):
         """selectionne le fichier de texture dans la boite de dialogue dediee"""
-        fichier = QFileDialog.getOpenFileName(self, 
-                                              "Selectionnez une image", 
-                                              "\\img", 
-                                              "Images (*.png *.jpg)")
-        pix = QPixmap(fichier)
-        if not pix.isNull():
-            self.nomImg = fichier
-            self.ui.et_apercu.setText(QString(""))
-            self.ui.et_apercu.setPixmap(pix)
-        else:    
-            dial = QMessageBox(self)
-            dial.setText("Format non reconnu")
-            dial.setWindowTitle("Erreur")
-            dial.setStandardButtons(QMessageBox.Ok)
-            dial.exec_()
-            
+        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())
-        self.terrain.imgTexture = self.nomImg
+        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

+ 1 - 2
lib/EcranSelectionPj.py

@@ -34,8 +34,7 @@ class EcranSelectionPj(QDialog):
             self.ui.spj_liste.nouvelleLigneFin()
             self.ui.spj_liste.majTexte(idPj, 0, idPj)
 
-            icone = QIcon("{}".format(pj.logo))
-            print pj.logo
+            icone = QIcon(pj.logo.chemin())
             item = QTableWidgetItem(QString(""))
             item.setIcon(icone)
             self.ui.spj_liste.setItem(idPj, 1, item)

+ 5 - 4
lib/Pion.py

@@ -8,6 +8,7 @@ from PyQt4.QtGui import *
 
 from Forme import Forme
 from outilsSvg import *
+from rsc import *
 
 class Pion(QGraphicsItem):
     """pion du plateau de combat"""
@@ -179,8 +180,8 @@ class Pion(QGraphicsItem):
                  
     def majImage(self):
         """met a jour la taille, la position et l'orientation de l'image"""
-        if len(self.img.nomFichier) > 0:
-            pix = QPixmap(QString.fromUtf8(self.img.nomFichier))
+        if self.img.rimage.estValide():
+            pix = self.img.rimage.pix()
             if not pix.isNull():
                 if not self.pixGraphique:
                     self.pixGraphique = QGraphicsPixmapItem()
@@ -201,7 +202,7 @@ class Pion(QGraphicsItem):
                 deltaX = self.img.dx + 0.5*(self.plateau.hCase*1.1544 - self.pixGraphique.pixmap().width())
                 deltaY = self.img.dy + 0.5*(self.plateau.hCase - self.pixGraphique.pixmap().height())
                     
-                if self.img.nomFichier == self.logo:
+                if self.img.rimage.nom() == self.logo.nom():
                     #si l'image est le logo, elle ne doit pas pivoter
                     self.pixGraphique.setParentItem(self)
                 else:
@@ -295,7 +296,7 @@ class Pion(QGraphicsItem):
 
 class ImgPion():
     def __init__(self):
-        self.nomFichier = ""        #nom du fichier image source
+        self.rimage = RImage("")        #ressource: image
         self.kx = 10                 #coeff d'agrandissement horizontal
         self.ky = 10                 #coeff d'agrandissement vertical
         self.dx = 0                 #decalage horizontal

+ 4 - 41
lib/Plateau.py

@@ -458,7 +458,7 @@ class Plateau(QGraphicsScene):
 
             ### maj des infos dans le panneau pi
             self.fenetre.ui.pi_nom.majTexte(self.pionSelectionne().txtId())
-            self.fenetre.ui.pi_img.chargerImage("img\\"+self.pionSelectionne().img.nomFichier)
+            self.fenetre.ui.pi_img.chargerImage(self.pionSelectionne().img.rimage)
 
             ### maj de la liste des attributs
             self.fenetre.ui.pi_listeAttributs.setColumnWidth(0, 50)
@@ -705,8 +705,8 @@ class Plateau(QGraphicsScene):
         for num in self.ordreJeu:
             self.fenetre.ui.inf_listeOrdreJeu.insertRow(int(index))
             self.fenetre.ui.inf_listeOrdreJeu.setItem(int(index), 0, QTableWidgetItem(QString.fromUtf8(str(num))))
-            icon = QIcon("img\\"+self.combattants[num].logo)
-            item = QTableWidgetItem(icon,QString.fromUtf8(self.combattants[num].txtId()))
+            icon = QIcon(self.combattants[num].logo.chemin())
+            item = QTableWidgetItem(icon, QString.fromUtf8(self.combattants[num].txtId()))
             self.fenetre.ui.inf_listeOrdreJeu.setItem(int(index), 1, item)
             self.fenetre.ui.inf_listeOrdreJeu.setItem(int(index), 2, QTableWidgetItem(QString.fromUtf8(str(self.ordreJeu[num]))))
             index += 1
@@ -790,44 +790,7 @@ class Plateau(QGraphicsScene):
             self.ordreJeu[numCombattant] = 1
         self.majOrdreJeu()
         
-##    def majListeAttributs(self):
-##        """met a jour la liste des attributs dans le panneau de combat"""
-##        self.fenetre.ui.pi_listeAttributs.setColumnWidth(0, 50)
-##        self.disconnect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
-##        
-##        #on vide la liste
-##        while self.fenetre.ui.pi_listeAttributs.rowCount() > 0:
-##            self.fenetre.ui.pi_listeAttributs.removeRow(0)
-##        self.fenetre.ui.pi_listeAttributs.setVisible((self.pionSelectionne() != None))    
-##        if self.pionSelectionne() != None:        
-##            #creation des lignes de base    
-##            lignesBase = ["Nom","Etat","Alt."]   #attention: modifier aussi dans listeAttributCelluleModifiee
-##            for i in range(0, 10):    #10 premieres colonnes reservees pour les infos de base
-##                self.fenetre.ui.pi_listeAttributs.insertRow(i)
-##                item = QTableWidgetItem()
-##                if i < len(lignesBase):
-##                    item.setText(QString.fromUtf8(lignesBase[i]))
-##                item.setFlags(Qt.NoItemFlags)    
-##                self.fenetre.ui.pi_listeAttributs.setItem(i, 0, item)
-##                self.fenetre.ui.pi_listeAttributs.setRowHidden(i, (i >= len(lignesBase)))
-##
-##            #maj des donnees de base    
-##            self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Nom"), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().nom))))
-##            self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Etat"), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().etat))))
-##            self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Alt."), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().z))))
-##            
-##            #attributs issus des regles utilisees    
-##            ordre = regles.ordreAttributs()
-##            for elt in ordre:
-##                ligne = 10 + ordre.index(elt)
-##                self.fenetre.ui.pi_listeAttributs.insertRow(ligne)
-##                item = QTableWidgetItem(QString.fromUtf8(elt))
-##                item.setFlags(Qt.NoItemFlags)
-##                self.fenetre.ui.pi_listeAttributs.setItem(ligne, 0, item)
-##                self.fenetre.ui.pi_listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().listeAttributs[elt]))))
-##                
-##            self.connect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
-##            
+
     def listeAttributCelluleModifiee(self, ligne, colonne):
         """une cellule de la liste des attributs a ete modifiee"""
         if colonne != 1:

+ 4 - 4
lib/Terrain.py

@@ -2,15 +2,15 @@
 # -*- coding: utf-8 -*-
 from __future__ import division
 from PyQt4.QtGui import QColor
-
+import rsc
         
 class Terrain():
     """terrain a affecter a une case"""
     def __init__(self, parent=None):
         self.id = None
-        self.nom = ""                #libelle a afficher dans la liste 
-        self.couleur = QColor("")    #couleur si pas de texture
-        self.imgTexture = ""         #image source de la texture
+        self.nom = ""                   #libelle a afficher dans la liste 
+        self.couleur = QColor("")       #couleur si pas de texture
+        self.imgTexture = rsc.RImage()        #image source de la texture
         self.franchissable = True    #peut on franchir cette case
         self.visibilite = True       #peut on voir au travers 
         self.modDeplacement = 1.00   #modificateur a appliquer au deplacement

+ 4 - 4
lib/VueEditionForme.py

@@ -56,9 +56,9 @@ class VueEditionForme(QGraphicsScene):
     def chargerImageDef(self, imgDef):
         self._vefImage.charger(imgDef)
 
-    def nouvelleImageDef(self, cheminFichier):
+    def nouvelleImageDef(self, rimage):
         imgDef = ImgPion()
-        imgDef.nomFichier = cheminFichier
+        imgDef.rimage = rimage
         self._vefImage.charger(imgDef)
 
     def imageDef(self):
@@ -274,9 +274,9 @@ class VefImage(QGraphicsPixmapItem):
         return self._def
 
     def _maj(self):
-        if len(self._def.nomFichier) > 0:
+        if self._def.rimage.estValide():
             if self._pix == None:
-                self._pix = QPixmap(QString.fromUtf8(self._def.nomFichier))
+                self._pix = self._def.rimage.pix()
                 if not self._pix.isNull():
                     if self._pix.height() >= self._pix.width():
                         self._pix = self._pix.scaledToHeight(120*0.9, Qt.SmoothTransformation)

BIN
lib/biblio/combattant


BIN
lib/biblio/decor


BIN
lib/biblio/terrain


+ 0 - 78
lib/ressources.py

@@ -1,78 +0,0 @@
-#from __future__ import unicode_literals
-# -*- coding: utf-8 -*-
-"""controle l'acces aux ressources variables (sons, images, sauvegardes)"""
-import os
-from PyQt4.QtGui import QPixmap
-
-#le repertoire de l'application
-ppal = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir))
-
-def repApp():
-    return ppal
-
-def repRessources():
-    return ["ressources\\commun", \
-            "ressources\\dd35", \
-            "parties\\Partie1\\ressources"]
-
-class Ressource(object):
-    """classe de base des ressources utilisees"""
-    def __init__(self, cheminR):
-        self._cheminR = cheminR
-
-    def chemin(self):
-        """renvoie le chemin absolu vers le fichier"""
-        return os.path.join(repApp(), self._cheminR)
-
-    def nom(self):
-        #on vire l'extension
-        nom = ""
-        for car in reversed(self._cheminR):
-            if car in ["\\", "/"]:
-                break
-            else:
-                nom = car + nom
-        nom = os.path.splitext(nom)[0]
-        return nom
-
-    def repR(self):
-        """renvoie le repertoire, presente de maniere relative"""
-        return os.path.dirname(self._cheminR)
-        
-    def extension(self):
-        return os.path.splitext(self._cheminR)[1]
-
-    def definition(self):
-        return self._cheminR
-                
-    def existe(self):
-        return os.path.isfile(self.chemin())
-
-    def estValide(self):
-        return self.existe()
-
-class Image(Ressource):
-    """classe de base des ressources utilisees"""
-    def __init__(self, cheminR):
-        super(Image, self).__init__(cheminR)
-
-    def pix(self, l = 0, h = 0):
-        pix = QPixmap(self.chemin())
-        if not pix.isNull():
-            if l > 0 and h > 0:
-                pix.scaled(l, h)
-            elif l > 0 and h == 0:
-                pix.scaledToWidth(l)
-            elif l == 0 and h > 0:
-                pix.scaledToHeigth(l)                
-        return pix
-
-    def estValide(self):
-        return self.existe() and \
-               self.extension() in [".png", ".jpg", ".gif"]
-
-
-
-r = Image("ressources\\commun\\orc.png")
-print r.repR()
-

+ 123 - 36
lib/EcranExplorateur.py → lib/rsc.py

@@ -1,16 +1,100 @@
-"""ecran d'exploration des ressources (images, sons)"""
+#from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
+"""controle l'acces aux ressources variables (sons, images, sauvegardes)"""
+import os
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 from ui.ecran_explorateur import Ui_exr_fenetre
 from ui.panneauImage import Ui_exi_panneau
-import os
-from sys import argv
-from ressources import *
 
-class EcranExplorateur(QDialog):
+#le repertoire de l'application
+ppal = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir))
+
+def repApp():
+    return ppal
+
+def repRessources():
+    return ["ressources\\commun", \
+            "ressources\\dd35", \
+            "parties\\Partie1\\ressources"]
+
+def selectionImage():
+    retour = None
+    expl = ExplorateurRessources()
+    expl.charger("I")
+    expl.show()
+    expl.exec_()
+    img = expl.selection()
+    if img:
+        if img.estValide():
+            retour = img
+    del expl    
+    return retour
+
+class Ressource(object):
+    """classe de base des ressources utilisees"""
+    def __init__(self, cheminR = ""):
+        self._cheminR = cheminR
+
+    def cheminR(self):
+        return self._cheminR
+
+    def chemin(self):
+        """renvoie le chemin absolu vers le fichier"""
+        return os.path.join(repApp(), self._cheminR)
+
+    def nom(self):
+        #on vire l'extension
+        nom = ""
+        for car in reversed(self._cheminR):
+            if car in ["\\", "/"]:
+                break
+            else:
+                nom = car + nom
+        nom = os.path.splitext(nom)[0]
+        return nom
+
+    def repR(self):
+        """renvoie le repertoire, presente de maniere relative"""
+        return os.path.dirname(self._cheminR)
+        
+    def extension(self):
+        return os.path.splitext(self._cheminR)[1]
+
+    def definition(self):
+        return self._cheminR
+                
+    def existe(self):
+        return os.path.isfile(self.chemin())
+
+    def estValide(self):
+        return self.existe()
+
+class RImage(Ressource):
+    """classe de base des ressources utilisees"""
+    def __init__(self, cheminR = ""):
+        super(RImage, self).__init__(cheminR)
+
+    def pix(self, l = 0, h = 0):
+        pix = QPixmap(self.chemin())
+        if not pix.isNull():
+            if l > 0 and h > 0:
+                pix = pix.scaled(l, h, Qt.KeepAspectRatio, Qt.SmoothTransformation)
+            elif l > 0 and h == 0:
+                pix = pix.scaledToWidth(l, Qt.SmoothTransformation)
+            elif l == 0 and h > 0:
+                pix = pix.scaledToHeight(h, Qt.SmoothTransformation)                
+        return pix
+
+    def estValide(self):
+        return self.existe() and \
+               self.extension() in [".png", ".jpg", ".gif"]
+
+
+class ExplorateurRessources(QDialog):
     def __init__(self, parent=None):
         """initialisation de la fenetre"""
-        super (EcranExplorateur, self).__init__(parent)
+        super (ExplorateurRessources, self).__init__(parent)
         self.createWidgets()
         self._selection = None
         self._panneaux = []
@@ -20,17 +104,12 @@ class EcranExplorateur(QDialog):
         """construction de l'interface"""
         self.ui = Ui_exr_fenetre()
         self.ui.setupUi(self)
+        
         self.connect(self.ui.exr_ok, SIGNAL("clicked()"), self.valider)
         self.connect(self.ui.exr_annuler, SIGNAL("clicked()"), self.annuler)
         self.connect(self.ui.exr_filtreNom, SIGNAL("textEdited(QString)"), self.majFiltre)
         self.connect(self.ui.exr_filtreRep, SIGNAL("currentIndexChanged(int)"), self.majFiltre)
-        
-        self.ui.exr_layout.setColumnMinimumWidth(0, 140)
-        self.ui.exr_layout.setColumnStretch(0, 1)
-        self.ui.exr_layout.setColumnMinimumWidth(1, 140)
-        self.ui.exr_layout.setColumnStretch(1, 1)
-        self.ui.exr_layout.setColumnMinimumWidth(2, 140)
-        self.ui.exr_layout.setColumnStretch(2, 1)
+        self.majLayout()
 
     def charger(self, typeRessource = "I"):
         """ressource vaut I ou S, pour image et sons"""
@@ -40,9 +119,9 @@ class EcranExplorateur(QDialog):
             for (dirpath, dirnames, filenames) in os.walk(repAbs):
                 for f in filenames:
                     if typeRessource == "I":
-                        r = Image(os.path.join(repR, f))
+                        r = RImage(os.path.join(repR, f))
                     else:
-                        r = Son(os.path.join(repR, f))
+                        r = RSon(os.path.join(repR, f))
                     if r.estValide():          
                         fichiers.append(r)
 
@@ -76,6 +155,15 @@ class EcranExplorateur(QDialog):
         for panneau in self._panneaux:
             panneau.appliquerFiltre(filtreRep, filtreNom)
 
+    def majLayout(self):
+        self.ui.exr_layout.setColumnMinimumWidth(0, 140)
+        self.ui.exr_layout.setColumnStretch(0, 1)
+        self.ui.exr_layout.setColumnMinimumWidth(1, 140)
+        self.ui.exr_layout.setColumnStretch(1, 1)
+        self.ui.exr_layout.setColumnMinimumWidth(2, 140)
+        self.ui.exr_layout.setColumnStretch(2, 1)
+        self.ui.exr_layout.setAlignment(Qt.AlignLeft | Qt.AlignTop)
+
     def valider(self):
         self._selection = self._panneauSelectionne.image()
         self.done(1)
@@ -89,13 +177,21 @@ class PanneauImage(QFrame):
         self.fenetre = fenetre
         super (PanneauImage, self).__init__(parent)
         self.createWidgets()
-        self._image = ""
+        self._image = None
         self._selectionnee = False
 
     def createWidgets(self):
         """construction de l'interface"""
         self.ui = Ui_exi_panneau()
         self.ui.setupUi(self)
+        self.connect(self.ui.exi_image, SIGNAL("clicked()"), self.clic)
+        self.connect(self.ui.exi_nom, SIGNAL("clicked()"), self.clic)
+        self.connect(self.ui.exi_details, SIGNAL("clicked()"), self.clic)
+        self.connect(self.ui.exi_situ, SIGNAL("clicked()"), self.clic)
+        self.connect(self.ui.exi_image, SIGNAL("doubleClicked()"), self.doubleClic)
+        self.connect(self.ui.exi_nom, SIGNAL("doubleClicked()"), self.doubleClic)
+        self.connect(self.ui.exi_details, SIGNAL("doubleClicked()"), self.doubleClic)
+        self.connect(self.ui.exi_situ, SIGNAL("doubleClicked()"), self.doubleClic)
         
     def selectionner(self, actif):
         if actif:
@@ -107,7 +203,7 @@ class PanneauImage(QFrame):
         self.setPalette(palette)
         
     def chargerImage(self, image):
-        self.ui.exi_image.chargerImage(image.chemin())
+        self.ui.exi_image.chargerImage(image)
         self.ui.exi_nom.majTexte(image.nom())
         self.ui.exi_details.majTexte((image.extension().replace(".", "")).upper())
         self.ui.exi_situ.majTexte(image.repR())
@@ -123,28 +219,19 @@ class PanneauImage(QFrame):
         else:
             self.setVisible(filtreNom in self._image.nom())
 
+    def clic(self):
+        if not self._selectionnee:
+            self.fenetre.majSelection(self)
+            self.selectionner(True)        
+
+    def doubleClic(self):
+        self.fenetre.valider()
+        
     def mousePressEvent(self, event):
         if event.button() == 1:
-            if not self._selectionnee:
-                self.fenetre.majSelection(self)
-                self.selectionner(True)
+            self.clic()
 
     def mouseDoubleClickEvent(self, event):
         if event.button() == 1:
-            self.fenetre.valider()
-
-
-if __name__ == "__main__":
-   app = QApplication(argv)
-   #settrace(trace_calls)
-   exp = EcranExplorateur()
-   exp.show()
-   exp.charger()
-   r = app.exec_()
-   ressource = exp.selection()
-   if ressource:
-       print ressource.nom()
-   exit(r)      
-
-
+            self.doubleClic()
 

+ 30 - 164
lib/ui/dm.py

@@ -5,16 +5,25 @@ from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 try:
     from lib.outilsSvg import *
-    import lib.regles as regles
-    from lib.Actions import *
 except:
     try:
         from outilsSvg import *
+    except:
+        print "dm: impossible de charger outilsSvg"
+try:        
+    import lib.regles as regles
+except:
+    try:
         import regles as regles
+    except:
+        print "dm: impossible de charger regles"
+try:
+    from lib.Actions import *
+except:
+    try:
         from Actions import *
     except:
-        pass
-
+        print "dm: impossible de charger Actions"
 
 class Biblio():
     """cette classe fournit une liste spreciale"""
@@ -34,17 +43,19 @@ class Biblio():
 class DmLabel(QLabel):
     """surcharge de QLabel"""
     def __init__(self, parent = None):
-        super(DmLabel, self).__init__(parent)    
+        super(DmLabel, self).__init__(parent)
+        self._image = None
 
     def majTexte(self, txt):
         self.clear()
         self.setText(QString.fromUtf8(txt))
 
-    def chargerImage(self, chemin):
+    def chargerImage(self, img = None):
+        """prend une Image en parametre"""
         self.clear()
-        if len(chemin) > 0:
-            pix = QPixmap(QString.fromUtf8(chemin))
-            pix = pix.scaled(self.width(), self.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
+        if img:
+            self._image = img
+            pix = img.pix(self.width(), self.height())
         else:
             pix = QPixmap()
         self.setPixmap(pix)         
@@ -52,46 +63,16 @@ class DmLabel(QLabel):
     def texte(self):
         return str(self.text().toUtf8())
 
-class DmLabelChoixImage(DmLabel):
-    """surcharge de DmLabel,
-        affiche une fenetre de selection de fichier, recupere une image,
-        et l'affiche."""
-    def __init__(self, parent = None):
-        super(DmLabelChoixImage, self).__init__(parent)
-        self.setStyleSheet("QLabel { padding: 3px; }")
-        self._sourceImage = ""
+    def image(self):
+        return self._image
 
     def mousePressEvent(self, event):
         if event.button() == 1:
-            self.selectionImage()
-            
-    def selectionImage(self):
-        fichier = QFileDialog.getOpenFileName(self, 
-                                              "Selectionnez une image", 
-                                              "\\img", 
-                                              "Images (*.png *.jpg)")
-        if len(fichier) > 0:
-            pix = QPixmap(fichier)
-            if not pix.isNull():
-                self._sourceImage = fichier
-                self.clear()
-                pix = pix.scaled(self.width(), self.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
-                self.setPixmap(pix)
-                self.emit(SIGNAL("imageModifiee()"))
-            else:
-                dial = QMessageBox(self)
-                dial.setText("Format non reconnu")
-                dial.setWindowTitle("Erreur")
-                dial.setStandardButtons(QMessageBox.Ok)
-                dial.exec_()
+            self.emit(SIGNAL("clicked()"))
 
-    def image(self):
-        """retourne le chemin de l'image chargee"""
-        return self._sourceImage
-
-    def chargerImage(self, chemin):
-        self._sourceImage = chemin
-        super(DmLabelChoixImage, self).chargerImage(chemin)
+    def mouseDoubleClickEvent(self, event):
+        if event.button() == 1:
+            self.emit(SIGNAL("doubleClicked()"))
 
 class DmTextEdit(QTextEdit):
     def __init__(self, parent = None):
@@ -321,8 +302,8 @@ class DmTableBiblio(DmTableWidget):
             #code de l'objet
             self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
             #icone et nom
-            icon = QIcon(objet.icone())
-            item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
+            icon = QIcon(objet.icone().chemin())
+            item = QTableWidgetItem(icon, QString.fromUtf8(objet.nom))
             self.setItem(int(index),1,item)
             
             index += 1        
@@ -509,120 +490,6 @@ class DmTableInventaireCombat(DmTableInventaire):
     def __init__(self, parent = None):
         super(DmTableInventaireCombat, self).__init__(parent)    
 
-            
-
-##class DmTableListeAttaques(DmTableWidget):
-##    """liste des attaques du combattant"""
-##    def __init__(self, parent = None):
-##        super(DmTableListeAttaques, self).__init__(parent)
-##        self.panneau = None
-##        self._listeAttaques = []
-##        self.connect(self, SIGNAL("currentCellChanged(int, int, int, int)"), self.selectionChangee)
-##
-##    def listeAttaques(self):
-##        #on recupere les donnees de l'attaque en cours avant d'exporter la liste
-##        self.enregistrerPanneau(self.ligneSelectionnee())
-##        return self._listeAttaques
-##
-##    def attaqueSelectionnee(self):
-##        """renvoie l'attaque selectionnee"""
-##        retour = None
-##        if len(self._listeAttaques) > 0 and self.ligneSelectionnee() != None:
-##            retour = self._listeAttaques[self.ligneSelectionnee()]
-##        return retour
-##
-##    def majAttaque(self, index, nouvelle):
-##        """met a jour les donnees de l'attaque en position x"""
-##        self._listeAttaques[index] = nouvelle
-##
-##    def charger(self, fenetre, listeAttaques):
-##        self.panneau = fenetre.ui.edc_attaque_panneau
-##        self._listeAttaques = listeAttaques
-##        self.peupler()
-##        self.selectionner(0, 0)
-##        self.majPanneau()
-##        
-##    def peupler(self):
-##        self.vider()
-##        for attaque in self._listeAttaques:
-##            ligne = self.nouvelleLigneFin()
-##            self.setItem(ligne, 0, QTableWidgetItem(attaque.icone(), QString.fromUtf8(attaque.nom())))      
-##
-##    def majPanneau(self):
-##        """met a jour les donnees du panneau"""
-##        self.panneau.chargerAttaque(self.attaqueSelectionnee())
-##
-##    def enregistrerPanneau(self, ligne):
-##        """enregistre les donnees du panneau sur l'attaque de la ligne"""
-##        attaque = self.panneau.attaque()
-##        if attaque:
-##            self._listeAttaques[ligne] = attaque
-##        self.peupler()
-##
-##    def nouvelle(self):
-##        attaque = Cac()
-##        self._listeAttaques.append(attaque)
-##        self.peupler()
-##        self.selectionner(self.rowCount(), 0)
-##        
-##    def supprimer(self):
-##        """supprime l'attaque actuellement selectionnee"""
-####        ligne = self.ligneSelectionnee()
-##        self._listeAttaques.remove(self.attaqueSelectionnee())
-##        self.peupler()
-####        self.selectionner(ligne, 0)
-####        self.removeRow(self.ligneSelectionnee())
-##
-##    def selectionChangee(self, ancienneLigne, ancienneColonne, ligne, colonne):
-##        self.enregistrerPanneau(ancienneLigne)
-##        self.panneau.chargerAttaque(None)
-##        self.majPanneau()
-####        self.emit(SIGNAL("selectionChangee(int, int)"), ancienneLigne, ligne)
-##        
-##
-##
-##class DmTableAttributsAttaque(DmTableWidget):
-##    """table contenant les attributs (selon regles) d'une attaque"""
-##    def __init__(self, parent = None):
-##        super(DmTableAttributsAttaque, self).__init__(parent)
-##        self._constr = False
-##
-##    def attributs(self):
-##        """retourne un dictionnaire contenant les attributs"""
-##        dico = {}
-##        for ligne in self.lignes():
-##            nomAttr = regles.ordreAttributsAttaques()[ligne]
-##            dico[nomAttr] = regles.attributAttaque(nomAttr).controler(self.texte(ligne, 1))
-##        return dico
-##
-##    def construire(self):
-##        """cree les lignes et remplit la colonne des noms d'attributs"""
-##        for nomAttribut in regles.ordreAttributsAttaques():
-##            attribut = regles.attributAttaque(nomAttribut)
-##            ligne = self.nouvelleLigneFin()
-##            self.majTexte(ligne, 0, attribut.nom)
-##            self.majTexte(ligne, 1, "")
-##        self._constr = True
-##            
-##    def charger(self, attributs):
-##        """charge les attributs d'une attaque"""
-##        self.decharger()
-##        for ligne in self.lignes():
-##            attr = regles.ordreAttributsAttaques()[ligne]
-##            valeur = attributs[attr]
-##            self.majTexte(ligne, 1, valeur)
-##
-##    def decharger(self):
-##        """efface les valeurs de la colonne des valeurs,
-##            mais laisse intacte la colonne des noms d'attributs"""
-##        if not self._constr:
-##            self.contruire()
-##        else:
-##            for ligne in self.lignes():
-##                self.majTexte(ligne, 1, "")
-##        
-
-
 class DmTableMenu(QTableWidget):
     """table utilisee comme barre d'onglets verticale"""
     def __init__(self, parent = None):
@@ -632,7 +499,6 @@ class DmTableMenu(QTableWidget):
         super(DmTableMenu, self).setItem(ligne, colonne, item)
         if ligne == 0:
             self.setItemSelected(item, True)
-            
 
 class DmFrameInf_Combattant(QGroupBox):
     """frame d'information (combattant)"""
@@ -643,7 +509,7 @@ class DmFrameInf_Combattant(QGroupBox):
         self.setVisible((combattant != None))
         if combattant:
             self.findChild(DmLabel, "inf_pionNom").majTexte(combattant.nom)
-            self.findChild(DmLabel, "inf_pionImage").chargerImage("img\\"+combattant.img.nomFichier)
+            self.findChild(DmLabel, "inf_pionImage").chargerImage(combattant.img.rimage)
             self.findChild(DmLabel, "inf_pionEffet").setVisible(False)
             
 
@@ -656,7 +522,7 @@ class DmFrameInf_Decor(QGroupBox):
         self.setVisible((decor != None))
         if decor:
             self.findChild(DmLabel, "inf_decorNom").majTexte(decor.nom)
-            self.findChild(DmLabel, "inf_decorImage").chargerImage("img\\"+decor.img.nomFichier)
+            self.findChild(DmLabel, "inf_decorImage").chargerImage(decor.img.rimage)
 
 class DmFrameInf_Case(QGroupBox):
     """frame d'information (case)"""

+ 4 - 4
lib/ui/ecran_editionCombattant.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'editionCombattant.ui'
 #
-# Created: Mon Jun 29 10:18:25 2015
+# Created: Mon Jun 29 16:27:32 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -235,7 +235,7 @@ class Ui_edc_fenetre(object):
         font.setFamily(_fromUtf8("Verdana"))
         self.edc_nom.setFont(font)
         self.edc_nom.setObjectName(_fromUtf8("edc_nom"))
-        self.edc_logo = DmLabelChoixImage(self.page_nom)
+        self.edc_logo = DmLabel(self.page_nom)
         self.edc_logo.setGeometry(QtCore.QRect(20, 10, 71, 71))
         font = QtGui.QFont()
         font.setFamily(_fromUtf8("Verdana"))
@@ -1056,7 +1056,7 @@ class Ui_edc_fenetre(object):
         self.horizontalLayout_2.addLayout(self.horizontalLayout)
 
         self.retranslateUi(edc_fenetre)
-        self.edc_pages.setCurrentIndex(1)
+        self.edc_pages.setCurrentIndex(0)
         self.edc_filtreTypeObjet.setCurrentIndex(4)
         QtCore.QObject.connect(self.edc_menu, QtCore.SIGNAL(_fromUtf8("cellClicked(int,int)")), self.edc_pages.setCurrentIndex)
         QtCore.QMetaObject.connectSlotsByName(edc_fenetre)
@@ -1148,7 +1148,7 @@ class Ui_edc_fenetre(object):
         self.edc_enregistrer.setText(_translate("edc_fenetre", "Enregistrer", None))
         self.edc_annuler.setText(_translate("edc_fenetre", "Annuler", None))
 
-from dm import DmTabInventaire, DmLineEdit, DmLabel, DmLabelChoixImage, DmTableMenu, DmTableInventaire
+from dm import DmTabInventaire, DmTableInventaire, DmTableMenu, DmLabel, DmLineEdit
 import ressource_rc
 
 if __name__ == "__main__":

+ 6 - 31
lib/ui/ecran_editionDecor.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'editionDecor.ui'
 #
-# Created: Mon Jun 29 10:18:28 2015
+# Created: Mon Jun 29 16:27:29 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -203,7 +203,7 @@ class Ui_edd_fenetre(object):
         font.setFamily(_fromUtf8("Verdana"))
         self.edd_nom.setFont(font)
         self.edd_nom.setObjectName(_fromUtf8("edd_nom"))
-        self.edd_logo = DmLabelChoixImage(self.page_nom)
+        self.edd_logo = DmLabel(self.page_nom)
         self.edd_logo.setGeometry(QtCore.QRect(20, 10, 71, 71))
         font = QtGui.QFont()
         font.setFamily(_fromUtf8("Verdana"))
@@ -288,7 +288,7 @@ class Ui_edd_fenetre(object):
         font = QtGui.QFont()
         font.setFamily(_fromUtf8("Verdana"))
         self.edd_taille.setFont(font)
-        self.edd_taille.setMinimum(1)
+        self.edd_taille.setMinimum(0)
         self.edd_taille.setMaximum(999)
         self.edd_taille.setObjectName(_fromUtf8("edd_taille"))
         self.label_15 = QtGui.QLabel(self.page_dep)
@@ -325,7 +325,7 @@ class Ui_edd_fenetre(object):
         self.label_4.setPixmap(QtGui.QPixmap(_fromUtf8(":/interface/24/ressource/escalade_24.png")))
         self.label_4.setObjectName(_fromUtf8("label_4"))
         self.groupBox_2 = QtGui.QGroupBox(self.page_dep)
-        self.groupBox_2.setGeometry(QtCore.QRect(50, 190, 341, 41))
+        self.groupBox_2.setGeometry(QtCore.QRect(50, 210, 341, 41))
         self.groupBox_2.setTitle(_fromUtf8(""))
         self.groupBox_2.setFlat(True)
         self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
@@ -345,28 +345,6 @@ class Ui_edd_fenetre(object):
         self.label_5.setPixmap(QtGui.QPixmap(_fromUtf8(":/interface/24/ressource/feu_24.png")))
         self.label_5.setScaledContents(False)
         self.label_5.setObjectName(_fromUtf8("label_5"))
-        self.groupBox_3 = QtGui.QGroupBox(self.page_dep)
-        self.groupBox_3.setGeometry(QtCore.QRect(50, 250, 341, 41))
-        self.groupBox_3.setTitle(_fromUtf8(""))
-        self.groupBox_3.setFlat(True)
-        self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
-        self.radioButton_4 = QtGui.QRadioButton(self.groupBox_3)
-        self.radioButton_4.setGeometry(QtCore.QRect(280, 10, 51, 31))
-        self.radioButton_4.setChecked(False)
-        self.radioButton_4.setObjectName(_fromUtf8("radioButton_4"))
-        self.edd_bloqueVue = QtGui.QRadioButton(self.groupBox_3)
-        self.edd_bloqueVue.setGeometry(QtCore.QRect(190, 10, 51, 31))
-        self.edd_bloqueVue.setChecked(True)
-        self.edd_bloqueVue.setObjectName(_fromUtf8("edd_bloqueVue"))
-        self.label_3 = QtGui.QLabel(self.groupBox_3)
-        self.label_3.setGeometry(QtCore.QRect(40, 10, 131, 31))
-        self.label_3.setObjectName(_fromUtf8("label_3"))
-        self.label_6 = QtGui.QLabel(self.groupBox_3)
-        self.label_6.setGeometry(QtCore.QRect(0, 10, 31, 31))
-        self.label_6.setText(_fromUtf8(""))
-        self.label_6.setPixmap(QtGui.QPixmap(_fromUtf8(":/interface/24/ressource/oeilBarre_24.png")))
-        self.label_6.setScaledContents(False)
-        self.label_6.setObjectName(_fromUtf8("label_6"))
         self.edd_pages.addWidget(self.page_dep)
         self.page_invent = QtGui.QWidget()
         self.page_invent.setObjectName(_fromUtf8("page_invent"))
@@ -642,7 +620,7 @@ class Ui_edd_fenetre(object):
         self.horizontalLayout_2.addLayout(self.horizontalLayout)
 
         self.retranslateUi(edd_fenetre)
-        self.edd_pages.setCurrentIndex(1)
+        self.edd_pages.setCurrentIndex(0)
         self.edd_filtreTypeObjet.setCurrentIndex(3)
         QtCore.QObject.connect(self.edd_menu, QtCore.SIGNAL(_fromUtf8("cellClicked(int,int)")), self.edd_pages.setCurrentIndex)
         QtCore.QMetaObject.connectSlotsByName(edd_fenetre)
@@ -688,9 +666,6 @@ class Ui_edd_fenetre(object):
         self.radioButton_3.setText(_translate("edd_fenetre", "Non", None))
         self.edd_brule.setText(_translate("edd_fenetre", "Oui", None))
         self.label_2.setText(_translate("edd_fenetre", "Peut brûler : ", None))
-        self.radioButton_4.setText(_translate("edd_fenetre", "Non", None))
-        self.edd_bloqueVue.setText(_translate("edd_fenetre", "Oui", None))
-        self.label_3.setText(_translate("edd_fenetre", "Bloque la vue : ", None))
         self.edd_listeInventaire.setSortingEnabled(True)
         item = self.edd_listeInventaire.verticalHeaderItem(0)
         item.setText(_translate("edd_fenetre", "Nouvelle ligne", None))
@@ -717,7 +692,7 @@ class Ui_edd_fenetre(object):
         self.edd_enregistrer.setText(_translate("edd_fenetre", "Enregistrer", None))
         self.edd_annuler.setText(_translate("edd_fenetre", "Annuler", None))
 
-from dm import DmTabInventaire, DmLineEdit, DmLabel, DmLabelChoixImage, DmTableMenu, DmTableInventaire
+from dm import DmTabInventaire, DmTableInventaire, DmTableMenu, DmLabel, DmLineEdit
 import ressource_rc
 
 if __name__ == "__main__":

+ 3 - 2
lib/ui/ecran_editionTerrain.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'editionTerrain.ui'
 #
-# Created: Fri Jun 26 11:59:34 2015
+# Created: Mon Jun 29 16:59:40 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -30,7 +30,7 @@ class Ui_et_fenetre(object):
         icon = QtGui.QIcon()
         icon.addPixmap(QtGui.QPixmap(_fromUtf8("img/paysage.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         et_fenetre.setWindowIcon(icon)
-        self.et_apercu = QtGui.QLabel(et_fenetre)
+        self.et_apercu = DmLabel(et_fenetre)
         self.et_apercu.setGeometry(QtCore.QRect(20, 10, 71, 71))
         font = QtGui.QFont()
         font.setFamily(_fromUtf8("Verdana"))
@@ -166,6 +166,7 @@ class Ui_et_fenetre(object):
         self.label.setText(_translate("et_fenetre", "Tags : ", None))
         self.et_groupeDep.setTitle(_translate("et_fenetre", "Déplacement", None))
 
+from dm import DmLabel
 import ressource_rc
 
 if __name__ == "__main__":

+ 2 - 1
lib/ui/ecran_explorateur.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'explorateurRessources.ui'
 #
-# Created: Mon Jun 29 15:30:59 2015
+# Created: Mon Jun 29 15:52:51 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -26,6 +26,7 @@ except AttributeError:
 class Ui_exr_fenetre(object):
     def setupUi(self, exr_fenetre):
         exr_fenetre.setObjectName(_fromUtf8("exr_fenetre"))
+        exr_fenetre.setWindowModality(QtCore.Qt.ApplicationModal)
         exr_fenetre.resize(510, 259)
         exr_fenetre.setMinimumSize(QtCore.QSize(470, 200))
         exr_fenetre.setMaximumSize(QtCore.QSize(713, 578))

+ 3 - 1
lib/ui/ecran_selectionPj.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'selectionPj.ui'
 #
-# Created: Fri Jun 26 19:32:11 2015
+# Created: Mon Jun 29 17:24:10 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -53,6 +53,7 @@ class Ui_spj_fenetre(object):
         self.spj_liste.setProperty("showDropIndicator", False)
         self.spj_liste.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
         self.spj_liste.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
+        self.spj_liste.setIconSize(QtCore.QSize(32, 32))
         self.spj_liste.setGridStyle(QtCore.Qt.NoPen)
         self.spj_liste.setObjectName(_fromUtf8("spj_liste"))
         self.spj_liste.setColumnCount(3)
@@ -66,6 +67,7 @@ class Ui_spj_fenetre(object):
         self.spj_liste.horizontalHeader().setVisible(False)
         self.spj_liste.horizontalHeader().setStretchLastSection(True)
         self.spj_liste.verticalHeader().setVisible(False)
+        self.spj_liste.verticalHeader().setDefaultSectionSize(35)
         self.verticalLayout.addWidget(self.spj_liste)
 
         self.retranslateUi(spj_fenetre)

+ 2 - 7
lib/ui/editionCombattant.ui

@@ -508,7 +508,7 @@
           </font>
          </property>
          <property name="currentIndex">
-          <number>1</number>
+          <number>0</number>
          </property>
          <widget class="QWidget" name="page_nom">
           <widget class="DmLineEdit" name="edc_nom">
@@ -563,7 +563,7 @@
             </font>
            </property>
           </widget>
-          <widget class="DmLabelChoixImage" name="edc_logo">
+          <widget class="DmLabel" name="edc_logo">
            <property name="geometry">
             <rect>
              <x>20</x>
@@ -2888,11 +2888,6 @@ parlées : </string>
    <extends>QTableWidget</extends>
    <header location="global">dm.h</header>
   </customwidget>
-  <customwidget>
-   <class>DmLabelChoixImage</class>
-   <extends>QLabel</extends>
-   <header location="global">dm.h</header>
-  </customwidget>
   <customwidget>
    <class>DmLineEdit</class>
    <extends>QLineEdit</extends>

+ 2 - 7
lib/ui/editionDecor.ui

@@ -417,7 +417,7 @@
           </font>
          </property>
          <property name="currentIndex">
-          <number>1</number>
+          <number>0</number>
          </property>
          <widget class="QWidget" name="page_nom">
           <widget class="DmLineEdit" name="edd_nom">
@@ -472,7 +472,7 @@
             </font>
            </property>
           </widget>
-          <widget class="DmLabelChoixImage" name="edd_logo">
+          <widget class="DmLabel" name="edd_logo">
            <property name="geometry">
             <rect>
              <x>20</x>
@@ -1617,11 +1617,6 @@ image</string>
    <extends>QTableWidget</extends>
    <header location="global">dm.h</header>
   </customwidget>
-  <customwidget>
-   <class>DmLabelChoixImage</class>
-   <extends>QLabel</extends>
-   <header location="global">dm.h</header>
-  </customwidget>
   <customwidget>
    <class>DmLineEdit</class>
    <extends>QLineEdit</extends>

+ 8 - 1
lib/ui/editionTerrain.ui

@@ -17,7 +17,7 @@
    <iconset>
     <normaloff>img/paysage.png</normaloff>img/paysage.png</iconset>
   </property>
-  <widget class="QLabel" name="et_apercu">
+  <widget class="DmLabel" name="et_apercu">
    <property name="geometry">
     <rect>
      <x>20</x>
@@ -367,6 +367,13 @@ texture</string>
    </widget>
   </widget>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>DmLabel</class>
+   <extends>QLabel</extends>
+   <header location="global">dm.h</header>
+  </customwidget>
+ </customwidgets>
  <resources>
   <include location="ressource.qrc"/>
  </resources>

+ 3 - 0
lib/ui/explorateurRessources.ui

@@ -2,6 +2,9 @@
 <ui version="4.0">
  <class>exr_fenetre</class>
  <widget class="QDialog" name="exr_fenetre">
+  <property name="windowModality">
+   <enum>Qt::ApplicationModal</enum>
+  </property>
   <property name="geometry">
    <rect>
     <x>0</x>

+ 9 - 0
lib/ui/selectionPj.ui

@@ -91,6 +91,12 @@
      <property name="selectionBehavior">
       <enum>QAbstractItemView::SelectRows</enum>
      </property>
+     <property name="iconSize">
+      <size>
+       <width>32</width>
+       <height>32</height>
+      </size>
+     </property>
      <property name="gridStyle">
       <enum>Qt::NoPen</enum>
      </property>
@@ -103,6 +109,9 @@
      <attribute name="verticalHeaderVisible">
       <bool>false</bool>
      </attribute>
+     <attribute name="verticalHeaderDefaultSectionSize">
+      <number>35</number>
+     </attribute>
      <column>
       <property name="text">
        <string>idPj</string>

BIN
parties/Partie1/groupe


BIN
parties/Partie1/svg/1.p


+ 2 - 1
parties/Partie1/svg/infos_sauvegarde

@@ -1 +1,2 @@
-€}qU0}q(UnomqUEssaiqUdateCreationqGAÕdA/ÎÙUdateSvgqGAÕdA÷�PUchapitreqU1UenCoursq‰Upublicq	‰us.
+€}q(U1}q(UnomqUertqUdateCreationqGAÕdWq!&éUdateSvgqGAÕdW‹UchapitreqU1UenCoursq‰Upublicq	‰uU0}q
+(UnomUEssaiUdateCreationGAÕdA/ÎÙUdateSvgGAÕdA÷�PUchapitreU1UenCours‰Upublic‰uu.