瀏覽代碼

Nouvelles classes de gestion de ressource et explorateur de ressources

unknown 10 年之前
父節點
當前提交
f7a6fb6428

+ 1 - 0
DMonde.py

@@ -12,6 +12,7 @@ from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
 from lib.ui.ecran_principal import Ui_principal
+import lib.ressources as ressources
 
 from lib.EcranCreerPlateau import EcranCreerPlateau
 from lib.EcranChargerPlateau import EcranChargerPlateau

+ 0 - 1
lib/Decor.py

@@ -13,7 +13,6 @@ class Decor(Pion):
         super(Decor, self).__init__()
         self.id = "00"
         self.escalade = False            #peut etre escalade
-        self.franchissable = False       #peut etre traverse (ex: rideau, porte)
         self.brule = False               #peut prendre feu
         self.inventaire = []
         self.notes = ""

+ 150 - 0
lib/EcranExplorateur.py

@@ -0,0 +1,150 @@
+"""ecran d'exploration des ressources (images, sons)"""
+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):
+    def __init__(self, parent=None):
+        """initialisation de la fenetre"""
+        super (EcranExplorateur, self).__init__(parent)
+        self.createWidgets()
+        self._selection = None
+        self._panneaux = []
+        self._panneauSelectionne = None
+
+    def createWidgets(self):
+        """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)
+
+    def charger(self, typeRessource = "I"):
+        """ressource vaut I ou S, pour image et sons"""
+        fichiers = []
+        for repR in repRessources():
+            repAbs = os.path.join(repApp(), repR)
+            for (dirpath, dirnames, filenames) in os.walk(repAbs):
+                for f in filenames:
+                    if typeRessource == "I":
+                        r = Image(os.path.join(repR, f))
+                    else:
+                        r = Son(os.path.join(repR, f))
+                    if r.estValide():          
+                        fichiers.append(r)
+
+        for f in fichiers:
+            self.ajouterImage(f)
+            
+    def ajouterImage(self, img):
+        """ajoute un panneau image a la liste deroulante"""
+        panneau = PanneauImage(self)
+        panneau.chargerImage(img)
+        self._panneaux.append(panneau)
+        self.ui.exr_layout.addWidget(panneau)
+
+    def selection(self):
+        return self._selection
+
+    def majSelection(self, panneau):
+        if self._panneauSelectionne:
+            self._panneauSelectionne.selectionner(False)
+        self._panneauSelectionne = panneau
+        self.majAffichage()
+
+    def majAffichage(self):
+        self.ui.exr_ok.setEnabled(self._panneauSelectionne != None)
+
+    def majFiltre(self):
+        filtreRep = ""
+        if self.ui.exr_filtreRep.currentIndex() > 0:
+            filtreRep = repRessources()[(self.ui.exr_filtreRep.currentIndex()-1)]
+        filtreNom = self.ui.exr_filtreNom.texte()
+        for panneau in self._panneaux:
+            panneau.appliquerFiltre(filtreRep, filtreNom)
+
+    def valider(self):
+        self._selection = self._panneauSelectionne.image()
+        self.done(1)
+
+    def annuler(self):
+        self.done(0)
+
+class PanneauImage(QFrame):
+    def __init__(self, fenetre, parent=None):
+        """initialisation de la fenetre"""
+        self.fenetre = fenetre
+        super (PanneauImage, self).__init__(parent)
+        self.createWidgets()
+        self._image = ""
+        self._selectionnee = False
+
+    def createWidgets(self):
+        """construction de l'interface"""
+        self.ui = Ui_exi_panneau()
+        self.ui.setupUi(self)
+        
+    def selectionner(self, actif):
+        if actif:
+            couleur = QColor(250, 250, 250, 250)
+        else:
+            couleur = QColor(240, 240, 240, 240)
+        palette = QPalette()
+        palette.setColor(QPalette.Window, couleur)
+        self.setPalette(palette)
+        
+    def chargerImage(self, image):
+        self.ui.exi_image.chargerImage(image.chemin())
+        self.ui.exi_nom.majTexte(image.nom())
+        self.ui.exi_details.majTexte((image.extension().replace(".", "")).upper())
+        self.ui.exi_situ.majTexte(image.repR())
+        self._image = image
+
+    def image(self):
+        return self._image
+
+    def appliquerFiltre(self, filtreRep, filtreNom):
+        if len(filtreRep) > 0:
+            self.setVisible(filtreNom in self._image.nom() and \
+                            self._image.repR() == filtreRep)
+        else:
+            self.setVisible(filtreNom in self._image.nom())
+
+    def mousePressEvent(self, event):
+        if event.button() == 1:
+            if not self._selectionnee:
+                self.fenetre.majSelection(self)
+                self.selectionner(True)
+
+    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)      
+
+
+

+ 6 - 3
lib/EcranSelectionPj.py

@@ -12,7 +12,7 @@ from outilsSvg import *
 
 class EcranSelectionPj(QDialog):
     """interface de creation/chargement de plateau"""
-    def __init__(self, terrain=None, parent=None):
+    def __init__(self, parent=None):
         """initialisation de la fenetre"""
         super (EcranSelectionPj, self).__init__(parent)
         self._pj = None
@@ -33,8 +33,11 @@ class EcranSelectionPj(QDialog):
         for pj in listePj:
             self.ui.spj_liste.nouvelleLigneFin()
             self.ui.spj_liste.majTexte(idPj, 0, idPj)
-            
-            item = QTableWidgetItem(QIcon("img\\{}".format(pj.logo)), QString(""))
+
+            icone = QIcon("{}".format(pj.logo))
+            print pj.logo
+            item = QTableWidgetItem(QString(""))
+            item.setIcon(icone)
             self.ui.spj_liste.setItem(idPj, 1, item)
 
             item = QTableWidgetItem()

+ 17 - 1
lib/Plateau.py

@@ -29,6 +29,7 @@ from EcranEditionDecor import EcranEditionDecor
 from EcranEditionTerrain import EcranEditionTerrain
 from EcranAffichageTexte import EcranAffichageTexte
 from EcranGestionCombat import EcranGestionCombat
+from EcranSelectionPj import EcranSelectionPj
 
 import regles as regles
 from outilsSvg import *
@@ -195,11 +196,13 @@ class Plateau(QGraphicsScene):
 
         #affichage de fenetres
         self.fenetre.connect(self.fenetre.ui.cbt_afficherGestion, SIGNAL("clicked()"), self.afficheEcranGestionCombat, Qt.UniqueConnection)
+        self.fenetre.connect(self.fenetre.ui.cbt_ajouterPj, SIGNAL("clicked()"), self.ajouterPj, Qt.UniqueConnection)
         self.fenetre.connect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee, Qt.UniqueConnection)
 
         self.fenetre.connect(self.fenetre.ui.cp_dialogueCouleurs, SIGNAL("clicked()"), self.modePeintureCase, Qt.UniqueConnection)
         self.fenetre.connect(self.fenetre.ui.cp_pipetteCouleur, SIGNAL("clicked()"), self.modeCopieTerrain, Qt.UniqueConnection)
         self.fenetre.connect(self.fenetre.ui.cp_afficherNotes, SIGNAL("clicked()"), self.agrandirNotesMjPlateau, Qt.UniqueConnection)
+        
 
         #listes
         self.fenetre.connect(self.fenetre.ui.inf_listeOrdreJeu, SIGNAL("cellClicked(int,int)"), self.clicListOrdreJeu, Qt.UniqueConnection)
@@ -221,7 +224,6 @@ class Plateau(QGraphicsScene):
         self.fenetre.connect(self.fenetre.ui.cp_epaisseurPinceau, SIGNAL("valueChanged(int)"), self.majEpaisseurPinceau, Qt.UniqueConnection)
 ##        self.fenetre.connect(self.fenetre.ui.altitudeCase, SIGNAL("valueChanged(double)"), self.modeMajAltitudeCase, Qt.UniqueConnection)
 
-
         #autres:
         #ajouter effet
         self.fenetre.connect(self.fenetre.ui.cp_placerEntree, SIGNAL("clicked()"), self.majModeDefinirEntree, Qt.UniqueConnection)
@@ -341,6 +343,20 @@ class Plateau(QGraphicsScene):
 ##        QApplication.processEvents()
         pass
 
+    def ajouterPj(self):
+        """affiche la fenetre de selection des pj, et recupere l'eventuel pj selectionne"""
+        self.ecranSelPj = EcranSelectionPj(self.fenetre)
+        self.ecranSelPj.setAttribute(Qt.WA_DeleteOnClose)
+        listePj = chargerUnique("parties\\{}\\groupe".format(self.fenetre.partie))
+        self.ecranSelPj.charger(listePj)
+        r = self.ecranSelPj.exec_()
+        if r == 1:
+            idPj = int(self.ecranSelPj.selection())
+            if idPj != None:
+                pj = listePj[idPj]
+                self.activerMode(Modes.CreationPion, pj)
+        self.ecranSelPj = None
+
     def agrandirNotesMjPlateau(self):
         """affiche les notes du plateau dans une QDialog, puis recupere les donnees qui y sont saisies"""
         affichageTexte = EcranAffichageTexte(self.notes)

二進制
lib/biblio/combattant


二進制
lib/biblio/decor


+ 3 - 3
lib/framePj.py

@@ -40,7 +40,7 @@ class FramePj(QFrame):
 
     def chargerPj(self, pj = None):
         """met a jour le contenu avec les donnees du pj en param"""
-        if pj:
+        if pj != None:
             self.ui.pj_image.chargerImage(pj.logo)
             self.ui.pj_nom.majTexte(pj.nom)
             for i in range(0, 6):
@@ -63,8 +63,8 @@ class FramePj(QFrame):
         self.editionPj.setAttribute(Qt.WA_DeleteOnClose)
         r = self.editionPj.exec_()
         self._pj = self.editionPj.combattant
-        self.ui.pj_image.chargerImage(pj.logo)
-        self.ui.pj_nom.majTexte(pj.nom)    
+        self.ui.pj_image.chargerImage(self._pj.logo)
+        self.ui.pj_nom.majTexte(self._pj.nom)    
         self.signalerModif()
 
 

+ 78 - 0
lib/ressources.py

@@ -0,0 +1,78 @@
+#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()
+

+ 1 - 0
lib/ui/convertExplorateur.cmd

@@ -0,0 +1 @@
+pyuic4 -x explorateurRessources.ui -o ecran_explorateur.py

+ 1 - 0
lib/ui/convertExplorateur_image.cmd

@@ -0,0 +1 @@
+pyuic4 -x panneauImage.ui -o panneauImage.py

+ 0 - 2
lib/ui/dm.py

@@ -683,8 +683,6 @@ class DmFrame(QFrame):
     def __init__(self, parent = None):
         super(DmFrame, self).__init__(parent)
 
-
-
         
 
 

+ 152 - 0
lib/ui/ecran_explorateur.py

@@ -0,0 +1,152 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'explorateurRessources.ui'
+#
+# Created: Mon Jun 29 15:30:59 2015
+#      by: PyQt4 UI code generator 4.10.4
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+try:
+    _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+    def _fromUtf8(s):
+        return s
+
+try:
+    _encoding = QtGui.QApplication.UnicodeUTF8
+    def _translate(context, text, disambig):
+        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+except AttributeError:
+    def _translate(context, text, disambig):
+        return QtGui.QApplication.translate(context, text, disambig)
+
+class Ui_exr_fenetre(object):
+    def setupUi(self, exr_fenetre):
+        exr_fenetre.setObjectName(_fromUtf8("exr_fenetre"))
+        exr_fenetre.resize(510, 259)
+        exr_fenetre.setMinimumSize(QtCore.QSize(470, 200))
+        exr_fenetre.setMaximumSize(QtCore.QSize(713, 578))
+        font = QtGui.QFont()
+        font.setFamily(_fromUtf8("Verdana"))
+        exr_fenetre.setFont(font)
+        self.verticalLayout = QtGui.QVBoxLayout(exr_fenetre)
+        self.verticalLayout.setMargin(5)
+        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
+        self.frame = QtGui.QFrame(exr_fenetre)
+        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
+        self.frame.setFrameShadow(QtGui.QFrame.Raised)
+        self.frame.setObjectName(_fromUtf8("frame"))
+        self.exr_panneauHaut = QtGui.QHBoxLayout(self.frame)
+        self.exr_panneauHaut.setMargin(3)
+        self.exr_panneauHaut.setObjectName(_fromUtf8("exr_panneauHaut"))
+        self.exr_filtreRep = QtGui.QComboBox(self.frame)
+        self.exr_filtreRep.setMinimumSize(QtCore.QSize(170, 22))
+        self.exr_filtreRep.setMaximumSize(QtCore.QSize(170, 22))
+        self.exr_filtreRep.setObjectName(_fromUtf8("exr_filtreRep"))
+        self.exr_filtreRep.addItem(_fromUtf8(""))
+        self.exr_filtreRep.addItem(_fromUtf8(""))
+        self.exr_filtreRep.addItem(_fromUtf8(""))
+        self.exr_filtreRep.addItem(_fromUtf8(""))
+        self.exr_panneauHaut.addWidget(self.exr_filtreRep)
+        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.exr_panneauHaut.addItem(spacerItem)
+        self.label = QtGui.QLabel(self.frame)
+        self.label.setMinimumSize(QtCore.QSize(61, 16))
+        self.label.setMaximumSize(QtCore.QSize(61, 16))
+        self.label.setObjectName(_fromUtf8("label"))
+        self.exr_panneauHaut.addWidget(self.label)
+        self.exr_filtreNom = DmLineEdit(self.frame)
+        self.exr_filtreNom.setMinimumSize(QtCore.QSize(100, 20))
+        self.exr_filtreNom.setMaximumSize(QtCore.QSize(16777215, 20))
+        palette = QtGui.QPalette()
+        brush = QtGui.QBrush(QtGui.QColor(248, 248, 248))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
+        brush = QtGui.QBrush(QtGui.QColor(248, 248, 248))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
+        brush = QtGui.QBrush(QtGui.QColor(240, 240, 240))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
+        self.exr_filtreNom.setPalette(palette)
+        self.exr_filtreNom.setObjectName(_fromUtf8("exr_filtreNom"))
+        self.exr_panneauHaut.addWidget(self.exr_filtreNom)
+        self.exr_rafraichir = QtGui.QToolButton(self.frame)
+        self.exr_rafraichir.setMinimumSize(QtCore.QSize(23, 22))
+        self.exr_rafraichir.setMaximumSize(QtCore.QSize(23, 22))
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/interface/16/ressource/rafraichir_16.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.exr_rafraichir.setIcon(icon)
+        self.exr_rafraichir.setIconSize(QtCore.QSize(14, 14))
+        self.exr_rafraichir.setObjectName(_fromUtf8("exr_rafraichir"))
+        self.exr_panneauHaut.addWidget(self.exr_rafraichir)
+        self.verticalLayout.addWidget(self.frame)
+        self.exr_deroulement = QtGui.QScrollArea(exr_fenetre)
+        self.exr_deroulement.setMinimumSize(QtCore.QSize(460, 0))
+        self.exr_deroulement.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+        self.exr_deroulement.setWidgetResizable(True)
+        self.exr_deroulement.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+        self.exr_deroulement.setObjectName(_fromUtf8("exr_deroulement"))
+        self.scrollAreaWidgetContents = QtGui.QWidget()
+        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 498, 166))
+        self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents"))
+        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.scrollAreaWidgetContents)
+        self.horizontalLayout_2.setMargin(3)
+        self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
+        self.exr_layout = QtGui.QGridLayout()
+        self.exr_layout.setObjectName(_fromUtf8("exr_layout"))
+        self.horizontalLayout_2.addLayout(self.exr_layout)
+        self.exr_deroulement.setWidget(self.scrollAreaWidgetContents)
+        self.verticalLayout.addWidget(self.exr_deroulement)
+        self.exr_panneauBas = QtGui.QFrame(exr_fenetre)
+        self.exr_panneauBas.setMinimumSize(QtCore.QSize(0, 0))
+        self.exr_panneauBas.setFrameShape(QtGui.QFrame.StyledPanel)
+        self.exr_panneauBas.setFrameShadow(QtGui.QFrame.Raised)
+        self.exr_panneauBas.setObjectName(_fromUtf8("exr_panneauBas"))
+        self.horizontalLayout = QtGui.QHBoxLayout(self.exr_panneauBas)
+        self.horizontalLayout.setMargin(3)
+        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
+        self.exr_annuler = QtGui.QPushButton(self.exr_panneauBas)
+        self.exr_annuler.setMinimumSize(QtCore.QSize(111, 31))
+        self.exr_annuler.setMaximumSize(QtCore.QSize(111, 31))
+        self.exr_annuler.setObjectName(_fromUtf8("exr_annuler"))
+        self.horizontalLayout.addWidget(self.exr_annuler)
+        spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout.addItem(spacerItem1)
+        self.exr_ok = QtGui.QPushButton(self.exr_panneauBas)
+        self.exr_ok.setEnabled(False)
+        self.exr_ok.setMinimumSize(QtCore.QSize(131, 31))
+        self.exr_ok.setMaximumSize(QtCore.QSize(131, 31))
+        self.exr_ok.setDefault(True)
+        self.exr_ok.setObjectName(_fromUtf8("exr_ok"))
+        self.horizontalLayout.addWidget(self.exr_ok)
+        self.verticalLayout.addWidget(self.exr_panneauBas)
+
+        self.retranslateUi(exr_fenetre)
+        QtCore.QMetaObject.connectSlotsByName(exr_fenetre)
+
+    def retranslateUi(self, exr_fenetre):
+        exr_fenetre.setWindowTitle(_translate("exr_fenetre", "Explorateur de ressources", None))
+        self.exr_filtreRep.setItemText(0, _translate("exr_fenetre", "Tout", None))
+        self.exr_filtreRep.setItemText(1, _translate("exr_fenetre", "Commun", None))
+        self.exr_filtreRep.setItemText(2, _translate("exr_fenetre", "Règles", None))
+        self.exr_filtreRep.setItemText(3, _translate("exr_fenetre", "Profil", None))
+        self.label.setText(_translate("exr_fenetre", "Chercher : ", None))
+        self.exr_annuler.setText(_translate("exr_fenetre", "Annuler", None))
+        self.exr_ok.setText(_translate("exr_fenetre", "Utiliser", None))
+
+from dm import DmLineEdit
+import ressource_rc
+
+if __name__ == "__main__":
+    import sys
+    app = QtGui.QApplication(sys.argv)
+    exr_fenetre = QtGui.QDialog()
+    ui = Ui_exr_fenetre()
+    ui.setupUi(exr_fenetre)
+    exr_fenetre.show()
+    sys.exit(app.exec_())
+

+ 2 - 82
lib/ui/editionDecor.ui

@@ -733,7 +733,7 @@ image</string>
             </font>
            </property>
            <property name="minimum">
-            <number>1</number>
+            <number>0</number>
            </property>
            <property name="maximum">
             <number>999</number>
@@ -856,7 +856,7 @@ image</string>
            <property name="geometry">
             <rect>
              <x>50</x>
-             <y>190</y>
+             <y>210</y>
              <width>341</width>
              <height>41</height>
             </rect>
@@ -929,86 +929,6 @@ image</string>
             </property>
            </widget>
           </widget>
-          <widget class="QGroupBox" name="groupBox_3">
-           <property name="geometry">
-            <rect>
-             <x>50</x>
-             <y>250</y>
-             <width>341</width>
-             <height>41</height>
-            </rect>
-           </property>
-           <property name="title">
-            <string/>
-           </property>
-           <property name="flat">
-            <bool>true</bool>
-           </property>
-           <widget class="QRadioButton" name="radioButton_4">
-            <property name="geometry">
-             <rect>
-              <x>280</x>
-              <y>10</y>
-              <width>51</width>
-              <height>31</height>
-             </rect>
-            </property>
-            <property name="text">
-             <string>Non</string>
-            </property>
-            <property name="checked">
-             <bool>false</bool>
-            </property>
-           </widget>
-           <widget class="QRadioButton" name="edd_bloqueVue">
-            <property name="geometry">
-             <rect>
-              <x>190</x>
-              <y>10</y>
-              <width>51</width>
-              <height>31</height>
-             </rect>
-            </property>
-            <property name="text">
-             <string>Oui</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-           <widget class="QLabel" name="label_3">
-            <property name="geometry">
-             <rect>
-              <x>40</x>
-              <y>10</y>
-              <width>131</width>
-              <height>31</height>
-             </rect>
-            </property>
-            <property name="text">
-             <string>Bloque la vue : </string>
-            </property>
-           </widget>
-           <widget class="QLabel" name="label_6">
-            <property name="geometry">
-             <rect>
-              <x>0</x>
-              <y>10</y>
-              <width>31</width>
-              <height>31</height>
-             </rect>
-            </property>
-            <property name="text">
-             <string/>
-            </property>
-            <property name="pixmap">
-             <pixmap resource="ressource.qrc">:/interface/24/ressource/oeilBarre_24.png</pixmap>
-            </property>
-            <property name="scaledContents">
-             <bool>false</bool>
-            </property>
-           </widget>
-          </widget>
          </widget>
          <widget class="QWidget" name="page_invent">
           <widget class="DmTableInventaire" name="edd_listeInventaire">

+ 363 - 0
lib/ui/explorateurRessources.ui

@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>exr_fenetre</class>
+ <widget class="QDialog" name="exr_fenetre">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>510</width>
+    <height>259</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>470</width>
+    <height>200</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>713</width>
+    <height>578</height>
+   </size>
+  </property>
+  <property name="font">
+   <font>
+    <family>Verdana</family>
+   </font>
+  </property>
+  <property name="windowTitle">
+   <string>Explorateur de ressources</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0">
+   <property name="leftMargin">
+    <number>5</number>
+   </property>
+   <property name="topMargin">
+    <number>5</number>
+   </property>
+   <property name="rightMargin">
+    <number>5</number>
+   </property>
+   <property name="bottomMargin">
+    <number>5</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QHBoxLayout" name="exr_panneauHaut">
+      <property name="leftMargin">
+       <number>3</number>
+      </property>
+      <property name="topMargin">
+       <number>3</number>
+      </property>
+      <property name="rightMargin">
+       <number>3</number>
+      </property>
+      <property name="bottomMargin">
+       <number>3</number>
+      </property>
+      <item>
+       <widget class="QComboBox" name="exr_filtreRep">
+        <property name="minimumSize">
+         <size>
+          <width>170</width>
+          <height>22</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>170</width>
+          <height>22</height>
+         </size>
+        </property>
+        <item>
+         <property name="text">
+          <string>Tout</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>Commun</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>Règles</string>
+         </property>
+        </item>
+        <item>
+         <property name="text">
+          <string>Profil</string>
+         </property>
+        </item>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_2">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="minimumSize">
+         <size>
+          <width>61</width>
+          <height>16</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>61</width>
+          <height>16</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Chercher : </string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="DmLineEdit" name="exr_filtreNom">
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>20</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>20</height>
+         </size>
+        </property>
+        <property name="palette">
+         <palette>
+          <active>
+           <colorrole role="Base">
+            <brush brushstyle="SolidPattern">
+             <color alpha="255">
+              <red>248</red>
+              <green>248</green>
+              <blue>248</blue>
+             </color>
+            </brush>
+           </colorrole>
+          </active>
+          <inactive>
+           <colorrole role="Base">
+            <brush brushstyle="SolidPattern">
+             <color alpha="255">
+              <red>248</red>
+              <green>248</green>
+              <blue>248</blue>
+             </color>
+            </brush>
+           </colorrole>
+          </inactive>
+          <disabled>
+           <colorrole role="Base">
+            <brush brushstyle="SolidPattern">
+             <color alpha="255">
+              <red>240</red>
+              <green>240</green>
+              <blue>240</blue>
+             </color>
+            </brush>
+           </colorrole>
+          </disabled>
+         </palette>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="exr_rafraichir">
+        <property name="minimumSize">
+         <size>
+          <width>23</width>
+          <height>22</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>23</width>
+          <height>22</height>
+         </size>
+        </property>
+        <property name="icon">
+         <iconset resource="ressource.qrc">
+          <normaloff>:/interface/16/ressource/rafraichir_16.png</normaloff>:/interface/16/ressource/rafraichir_16.png</iconset>
+        </property>
+        <property name="iconSize">
+         <size>
+          <width>14</width>
+          <height>14</height>
+         </size>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QScrollArea" name="exr_deroulement">
+     <property name="minimumSize">
+      <size>
+       <width>460</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="horizontalScrollBarPolicy">
+      <enum>Qt::ScrollBarAlwaysOff</enum>
+     </property>
+     <property name="widgetResizable">
+      <bool>true</bool>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <widget class="QWidget" name="scrollAreaWidgetContents">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>498</width>
+        <height>166</height>
+       </rect>
+      </property>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <property name="leftMargin">
+        <number>3</number>
+       </property>
+       <property name="topMargin">
+        <number>3</number>
+       </property>
+       <property name="rightMargin">
+        <number>3</number>
+       </property>
+       <property name="bottomMargin">
+        <number>3</number>
+       </property>
+       <item>
+        <layout class="QGridLayout" name="exr_layout"/>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item>
+    <widget class="QFrame" name="exr_panneauBas">
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="frameShape">
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="leftMargin">
+       <number>3</number>
+      </property>
+      <property name="topMargin">
+       <number>3</number>
+      </property>
+      <property name="rightMargin">
+       <number>3</number>
+      </property>
+      <property name="bottomMargin">
+       <number>3</number>
+      </property>
+      <item>
+       <widget class="QPushButton" name="exr_annuler">
+        <property name="minimumSize">
+         <size>
+          <width>111</width>
+          <height>31</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>111</width>
+          <height>31</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Annuler</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QPushButton" name="exr_ok">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="minimumSize">
+         <size>
+          <width>131</width>
+          <height>31</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>131</width>
+          <height>31</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Utiliser</string>
+        </property>
+        <property name="default">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>DmLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header location="global">dm.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="ressource.qrc"/>
+ </resources>
+ <connections/>
+</ui>

+ 90 - 0
lib/ui/panneauImage.py

@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'panneauImage.ui'
+#
+# Created: Mon Jun 29 15:01:46 2015
+#      by: PyQt4 UI code generator 4.10.4
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+try:
+    _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+    def _fromUtf8(s):
+        return s
+
+try:
+    _encoding = QtGui.QApplication.UnicodeUTF8
+    def _translate(context, text, disambig):
+        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+except AttributeError:
+    def _translate(context, text, disambig):
+        return QtGui.QApplication.translate(context, text, disambig)
+
+class Ui_exi_panneau(object):
+    def setupUi(self, exi_panneau):
+        exi_panneau.setObjectName(_fromUtf8("exi_panneau"))
+        exi_panneau.resize(153, 54)
+        exi_panneau.setMinimumSize(QtCore.QSize(153, 54))
+        exi_panneau.setMaximumSize(QtCore.QSize(338, 77))
+        font = QtGui.QFont()
+        font.setFamily(_fromUtf8("Verdana"))
+        exi_panneau.setFont(font)
+        exi_panneau.setAutoFillBackground(True)
+        exi_panneau.setFrameShape(QtGui.QFrame.StyledPanel)
+        exi_panneau.setFrameShadow(QtGui.QFrame.Sunken)
+        self.horizontalLayout = QtGui.QHBoxLayout(exi_panneau)
+        self.horizontalLayout.setMargin(3)
+        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
+        self.exi_image = DmLabel(exi_panneau)
+        self.exi_image.setFrameShape(QtGui.QFrame.NoFrame)
+        self.exi_image.setText(_fromUtf8(""))
+        self.exi_image.setAlignment(QtCore.Qt.AlignCenter)
+        self.exi_image.setObjectName(_fromUtf8("exi_image"))
+        self.horizontalLayout.addWidget(self.exi_image)
+        self.verticalLayout = QtGui.QVBoxLayout()
+        self.verticalLayout.setContentsMargins(3, -1, -1, -1)
+        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
+        self.exi_nom = DmLabel(exi_panneau)
+        self.exi_nom.setObjectName(_fromUtf8("exi_nom"))
+        self.verticalLayout.addWidget(self.exi_nom)
+        self.exi_details = DmLabel(exi_panneau)
+        font = QtGui.QFont()
+        font.setItalic(True)
+        self.exi_details.setFont(font)
+        self.exi_details.setObjectName(_fromUtf8("exi_details"))
+        self.verticalLayout.addWidget(self.exi_details)
+        self.exi_situ = DmLabel(exi_panneau)
+        font = QtGui.QFont()
+        font.setPointSize(7)
+        self.exi_situ.setFont(font)
+        self.exi_situ.setObjectName(_fromUtf8("exi_situ"))
+        self.verticalLayout.addWidget(self.exi_situ)
+        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout.addItem(spacerItem)
+        self.horizontalLayout.addLayout(self.verticalLayout)
+        self.horizontalLayout.setStretch(0, 1)
+        self.horizontalLayout.setStretch(1, 3)
+
+        self.retranslateUi(exi_panneau)
+        QtCore.QMetaObject.connectSlotsByName(exi_panneau)
+
+    def retranslateUi(self, exi_panneau):
+        exi_panneau.setWindowTitle(_translate("exi_panneau", "exi_panneau", None))
+        self.exi_nom.setText(_translate("exi_panneau", "nom", None))
+        self.exi_details.setText(_translate("exi_panneau", "detail", None))
+        self.exi_situ.setText(_translate("exi_panneau", "situ", None))
+
+from dm import DmLabel
+
+if __name__ == "__main__":
+    import sys
+    app = QtGui.QApplication(sys.argv)
+    exi_panneau = QtGui.QFrame()
+    ui = Ui_exi_panneau()
+    ui.setupUi(exi_panneau)
+    exi_panneau.show()
+    sys.exit(app.exec_())
+

+ 130 - 0
lib/ui/panneauImage.ui

@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>exi_panneau</class>
+ <widget class="QFrame" name="exi_panneau">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>153</width>
+    <height>54</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>153</width>
+    <height>54</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>338</width>
+    <height>77</height>
+   </size>
+  </property>
+  <property name="font">
+   <font>
+    <family>Verdana</family>
+   </font>
+  </property>
+  <property name="windowTitle">
+   <string>exi_panneau</string>
+  </property>
+  <property name="autoFillBackground">
+   <bool>true</bool>
+  </property>
+  <property name="frameShape">
+   <enum>QFrame::StyledPanel</enum>
+  </property>
+  <property name="frameShadow">
+   <enum>QFrame::Sunken</enum>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout" stretch="1,3">
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <widget class="DmLabel" name="exi_image">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="text">
+      <string/>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <property name="leftMargin">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="DmLabel" name="exi_nom">
+       <property name="text">
+        <string>nom</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="DmLabel" name="exi_details">
+       <property name="font">
+        <font>
+         <italic>true</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>detail</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="DmLabel" name="exi_situ">
+       <property name="font">
+        <font>
+         <pointsize>7</pointsize>
+        </font>
+       </property>
+       <property name="text">
+        <string>situ</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>DmLabel</class>
+   <extends>QLabel</extends>
+   <header location="global">dm.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>

+ 1 - 0
lib/ui/ressource.qrc

@@ -50,6 +50,7 @@
         <file>ressource/glace_16.png</file>
         <file>ressource/corbeille_16.png</file>
         <file>ressource/depart_16.png</file>
+        <file>ressource/rafraichir_16.png</file>
     </qresource>
     <qresource prefix="/interface/24" lang="fr">
         <file>ressource/poids_24.png</file>

二進制
lib/ui/ressource/rafraichir_16.png


+ 55 - 26
lib/ui/ressource_rc.py

@@ -2,7 +2,7 @@
 
 # Resource object code
 #
-# Created: lun. 29. juin 09:41:11 2015
+# Created: lun. 29. juin 12:10:18 2015
 #      by: The Resource Compiler for PyQt (Qt v4.8.5)
 #
 # WARNING! All changes made in this file will be lost!
@@ -2527,6 +2527,29 @@ qt_resource_data = "\
 \x3d\xee\xff\x02\x48\x3b\xfc\x41\x8a\x30\xb6\x4f\x3b\xc3\x2f\x8d\
 \x6a\xf9\x36\xab\x0b\x53\x81\x0e\x0f\x7a\x8d\x03\x9f\x00\x00\x00\
 \x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\x45\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x01\x0c\x49\x44\x41\x54\x38\x8d\xb5\xd3\xbb\x4a\x43\x41\
+\x10\x06\xe0\xaf\x52\x22\x82\x20\xfa\x0c\x89\x06\x04\xed\xbd\xbd\
+\x88\x56\x9a\x87\xf1\x02\xf1\x56\x98\x46\x2c\xf2\x12\x62\xa5\x60\
+\xa7\x88\xd7\x57\xd0\xc2\x32\x0a\x6a\x62\xb1\xe7\x98\x75\xcd\x89\
+\xa4\xf0\x87\x3d\xcb\x61\xe6\x1f\xfe\x99\xd9\x9f\xdf\x98\xc3\x1e\
+\xee\xf0\x82\x67\xdc\x60\x03\xe5\x1e\xf9\xdf\x18\xc6\x01\xda\xe8\
+\x14\x9c\x77\x6c\x61\x14\xc7\x98\xc8\xc9\x23\x38\x4d\x92\x6f\xd1\
+\x44\x03\x17\x49\xec\x29\xbb\xab\x79\x81\x46\x14\x7c\xc0\x42\x0f\
+\x85\xab\x68\x25\x85\xa6\x60\x26\x92\x7d\x1f\xcb\x4a\x70\xde\xa3\
+\xa5\x0a\xd4\xb2\x9f\x36\xe6\xfb\xcc\x68\x28\x53\x71\x15\x15\x28\
+\xc3\x18\x76\xb0\xd6\x87\x9c\x62\x19\x75\x94\x06\xe0\xfc\x23\x4a\
+\x82\x9c\xa5\x01\x38\x35\x1c\x0a\xed\xab\xe8\x0e\xe5\x12\x2b\xc2\
+\xc0\x8a\xb0\xa0\xbb\xb5\x75\xc2\x2e\xd3\xf5\x9c\x15\x90\x27\x85\
+\x77\xd2\xc1\x07\xa6\x65\x9f\x98\xdc\xca\x2b\x27\x58\xc4\x63\x94\
+\x57\xcf\x03\x55\x3f\x9f\x67\x7e\xae\xb3\x3e\x9b\x82\xb1\xe2\xd8\
+\x89\x68\x85\xe3\x38\x12\x0c\xb2\x2d\x18\xa6\xc8\x4c\x9f\xd8\xff\
+\x63\x46\x2a\xd8\x14\xcc\xf4\x8a\xb7\x4c\xc1\x2e\x66\xd3\xe4\x2f\
+\xd0\x4e\x65\x2e\xba\x8a\xde\x95\x00\x00\x00\x00\x49\x45\x4e\x44\
+\xae\x42\x60\x82\
 \x00\x00\x01\x09\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -4628,6 +4651,11 @@ qt_resource_name = "\
 \x03\x41\xa8\xe7\
 \x00\x61\
 \x00\x67\x00\x72\x00\x61\x00\x6e\x00\x64\x00\x69\x00\x72\x00\x5f\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x11\
+\x0c\x5b\x40\x47\
+\x00\x72\
+\x00\x61\x00\x66\x00\x72\x00\x61\x00\x69\x00\x63\x00\x68\x00\x69\x00\x72\x00\x5f\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\
 \x00\x13\
 \x0d\xf0\x13\x27\
 \x00\x66\
@@ -4738,9 +4766,9 @@ qt_resource_struct = "\
 \x00\x00\x00\x38\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0a\
 \x00\x00\x00\x22\x00\x02\x00\x00\x00\x01\x00\x00\x00\x06\
 \x00\x00\x00\x42\x00\x02\x00\x00\x00\x03\x00\x00\x00\x07\
-\x00\x00\x0c\x06\x00\x00\x00\x4a\x00\x25\x00\x00\xe9\x5e\
-\x00\x00\x0b\xe6\x00\x00\x00\x4a\x00\x25\x00\x00\xb9\x2a\
-\x00\x00\x0b\xc2\x00\x00\x00\x4a\x00\x25\x00\x00\xa6\x56\
+\x00\x00\x0c\x2e\x00\x00\x00\x4a\x00\x25\x00\x00\xea\xa7\
+\x00\x00\x0c\x0e\x00\x00\x00\x4a\x00\x25\x00\x00\xba\x73\
+\x00\x00\x0b\xea\x00\x00\x00\x4a\x00\x25\x00\x00\xa7\x9f\
 \x00\x00\x00\x42\x00\x02\x00\x00\x00\x24\x00\x00\x00\x0b\
 \x00\x00\x01\xfe\x00\x00\x00\x4a\x00\x25\x00\x00\x20\xd7\
 \x00\x00\x00\x5a\x00\x00\x00\x4a\x00\x25\x00\x00\x00\x00\
@@ -4779,13 +4807,13 @@ qt_resource_struct = "\
 \x00\x00\x00\xec\x00\x00\x00\x4a\x00\x25\x00\x00\x0a\xeb\
 \x00\x00\x01\x6a\x00\x00\x00\x4a\x00\x25\x00\x00\x14\xfe\
 \x00\x00\x00\x42\x00\x02\x00\x00\x00\x06\x00\x00\x00\x30\
-\x00\x00\x0c\x24\x00\x00\x00\x4a\x00\x25\x00\x00\xf5\x32\
-\x00\x00\x0c\xc6\x00\x00\x00\x4a\x00\x25\x00\x00\xfd\xcb\
-\x00\x00\x0c\xaa\x00\x00\x00\x4a\x00\x25\x00\x00\xfc\x76\
-\x00\x00\x0c\x48\x00\x00\x00\x4a\x00\x25\x00\x00\xf7\x45\
-\x00\x00\x0c\x8c\x00\x00\x00\x4a\x00\x25\x00\x00\xfb\x06\
-\x00\x00\x0c\x6e\x00\x00\x00\x4a\x00\x25\x00\x00\xf9\x58\
-\x00\x00\x00\x42\x00\x02\x00\x00\x00\x32\x00\x00\x00\x37\
+\x00\x00\x0c\x4c\x00\x00\x00\x4a\x00\x25\x00\x00\xf6\x7b\
+\x00\x00\x0c\xee\x00\x00\x00\x4a\x00\x25\x00\x00\xff\x14\
+\x00\x00\x0c\xd2\x00\x00\x00\x4a\x00\x25\x00\x00\xfd\xbf\
+\x00\x00\x0c\x70\x00\x00\x00\x4a\x00\x25\x00\x00\xf8\x8e\
+\x00\x00\x0c\xb4\x00\x00\x00\x4a\x00\x25\x00\x00\xfc\x4f\
+\x00\x00\x0c\x96\x00\x00\x00\x4a\x00\x25\x00\x00\xfa\xa1\
+\x00\x00\x00\x42\x00\x02\x00\x00\x00\x33\x00\x00\x00\x37\
 \x00\x00\x07\xf6\x00\x00\x00\x4a\x00\x25\x00\x00\x81\x42\
 \x00\x00\x05\xea\x00\x00\x00\x4a\x00\x25\x00\x00\x6e\x83\
 \x00\x00\x07\x3e\x00\x00\x00\x4a\x00\x25\x00\x00\x7a\xca\
@@ -4795,45 +4823,46 @@ qt_resource_struct = "\
 \x00\x00\x07\xdc\x00\x00\x00\x4a\x00\x25\x00\x00\x7f\xef\
 \x00\x00\x08\xdc\x00\x00\x00\x4a\x00\x25\x00\x00\x8b\x6d\
 \x00\x00\x07\x24\x00\x00\x00\x4a\x00\x25\x00\x00\x79\xb9\
-\x00\x00\x0a\xd2\x00\x00\x00\x4a\x00\x25\x00\x00\x9c\xf9\
+\x00\x00\x0a\xfa\x00\x00\x00\x4a\x00\x25\x00\x00\x9e\x42\
 \x00\x00\x05\x92\x00\x00\x00\x4a\x00\x25\x00\x00\x6a\xf2\
 \x00\x00\x09\x16\x00\x00\x00\x4a\x00\x25\x00\x00\x8c\xad\
-\x00\x00\x09\xe2\x00\x00\x00\x4a\x00\x25\x00\x00\x94\xa0\
+\x00\x00\x0a\x0a\x00\x00\x00\x4a\x00\x25\x00\x00\x95\xe9\
 \x00\x00\x06\x58\x00\x00\x00\x4a\x00\x25\x00\x00\x71\x9a\
-\x00\x00\x0b\x1a\x00\x00\x00\x4a\x00\x25\x00\x00\x9f\x86\
+\x00\x00\x0b\x42\x00\x00\x00\x4a\x00\x25\x00\x00\xa0\xcf\
 \x00\x00\x09\x2e\x00\x00\x00\x4a\x00\x25\x00\x00\x8e\x21\
-\x00\x00\x0a\x22\x00\x00\x00\x4a\x00\x25\x00\x00\x96\x49\
-\x00\x00\x0a\x64\x00\x00\x00\x4a\x00\x25\x00\x00\x98\xb9\
+\x00\x00\x0a\x4a\x00\x00\x00\x4a\x00\x25\x00\x00\x97\x92\
+\x00\x00\x0a\x8c\x00\x00\x00\x4a\x00\x25\x00\x00\x9a\x02\
 \x00\x00\x09\x92\x00\x00\x00\x4a\x00\x25\x00\x00\x92\x15\
-\x00\x00\x0a\xec\x00\x00\x00\x4a\x00\x25\x00\x00\x9e\x65\
+\x00\x00\x0b\x14\x00\x00\x00\x4a\x00\x25\x00\x00\x9f\xae\
 \x00\x00\x05\xac\x00\x00\x00\x4a\x00\x25\x00\x00\x6c\x6f\
 \x00\x00\x08\x58\x00\x00\x00\x4a\x00\x25\x00\x00\x84\x88\
-\x00\x00\x0a\x8a\x00\x00\x00\x4a\x00\x25\x00\x00\x9a\x07\
+\x00\x00\x0a\xb2\x00\x00\x00\x4a\x00\x25\x00\x00\x9b\x50\
 \x00\x00\x09\x4a\x00\x00\x00\x4a\x00\x25\x00\x00\x8f\x06\
-\x00\x00\x0b\x36\x00\x00\x00\x4a\x00\x25\x00\x00\xa1\x63\
+\x00\x00\x0b\x5e\x00\x00\x00\x4a\x00\x25\x00\x00\xa2\xac\
 \x00\x00\x08\x7a\x00\x00\x00\x4a\x00\x25\x00\x00\x86\x2a\
 \x00\x00\x07\x00\x00\x00\x00\x4a\x00\x25\x00\x00\x78\x41\
 \x00\x00\x08\x9a\x00\x00\x00\x4a\x00\x25\x00\x00\x88\x56\
 \x00\x00\x08\xf6\x00\x00\x00\x4a\x00\x25\x00\x00\x8c\x21\
-\x00\x00\x09\xfe\x00\x00\x00\x4a\x00\x25\x00\x00\x95\xef\
-\x00\x00\x0a\x44\x00\x00\x00\x4a\x00\x25\x00\x00\x97\x8d\
+\x00\x00\x0a\x26\x00\x00\x00\x4a\x00\x25\x00\x00\x97\x38\
+\x00\x00\x0a\x6c\x00\x00\x00\x4a\x00\x25\x00\x00\x98\xd6\
 \x00\x00\x06\x2e\x00\x00\x00\x4a\x00\x25\x00\x00\x70\x5f\
-\x00\x00\x0b\x98\x00\x00\x00\x4a\x00\x25\x00\x00\xa5\x52\
+\x00\x00\x0b\xc0\x00\x00\x00\x4a\x00\x25\x00\x00\xa6\x9b\
 \x00\x00\x06\xd2\x00\x00\x00\x4a\x00\x25\x00\x00\x77\x3d\
 \x00\x00\x08\x1a\x00\x00\x00\x4a\x00\x25\x00\x00\x82\xb1\
 \x00\x00\x05\x28\x00\x00\x00\x4a\x00\x25\x00\x00\x67\x1a\
 \x00\x00\x06\xb2\x00\x00\x00\x4a\x00\x25\x00\x00\x76\x50\
 \x00\x00\x09\x6e\x00\x00\x00\x4a\x00\x25\x00\x00\x90\x9f\
 \x00\x00\x05\xcc\x00\x00\x00\x4a\x00\x25\x00\x00\x6d\xd0\
+\x00\x00\x09\xb6\x00\x00\x00\x4a\x00\x25\x00\x00\x93\x93\
 \x00\x00\x06\x92\x00\x00\x00\x4a\x00\x25\x00\x00\x74\xaa\
 \x00\x00\x06\x74\x00\x00\x00\x4a\x00\x25\x00\x00\x72\xe8\
 \x00\x00\x05\x4a\x00\x00\x00\x4a\x00\x25\x00\x00\x68\xa4\
-\x00\x00\x09\xb6\x00\x00\x00\x4a\x00\x25\x00\x00\x93\x93\
-\x00\x00\x0a\xaa\x00\x00\x00\x4a\x00\x25\x00\x00\x9b\xde\
+\x00\x00\x09\xde\x00\x00\x00\x4a\x00\x25\x00\x00\x94\xdc\
+\x00\x00\x0a\xd2\x00\x00\x00\x4a\x00\x25\x00\x00\x9d\x27\
 \x00\x00\x06\x10\x00\x00\x00\x4a\x00\x25\x00\x00\x6f\x58\
-\x00\x00\x0b\x56\x00\x00\x00\x4a\x00\x25\x00\x00\xa2\xaa\
+\x00\x00\x0b\x7e\x00\x00\x00\x4a\x00\x25\x00\x00\xa3\xf3\
 \x00\x00\x05\x74\x00\x00\x00\x4a\x00\x25\x00\x00\x69\xf5\
-\x00\x00\x0b\x7a\x00\x00\x00\x4a\x00\x25\x00\x00\xa3\x4b\
+\x00\x00\x0b\xa2\x00\x00\x00\x4a\x00\x25\x00\x00\xa4\x94\
 \x00\x00\x07\x6c\x00\x00\x00\x4a\x00\x25\x00\x00\x7b\xe8\
 \x00\x00\x08\x3a\x00\x00\x00\x4a\x00\x25\x00\x00\x83\x3b\
 "

二進制
parties/Partie1/svg/0.p


+ 1 - 1
parties/Partie1/svg/infos_sauvegarde

@@ -1 +1 @@
-€}qU0}q(UnomqUtestqUdateCreationqGAÕc[Ã,í‘UdateSvgqGAÕd?—\)UchapitreqU1UenCoursq‰Upublicq	‰us.
+€}qU0}q(UnomqUEssaiqUdateCreationqGAÕdA/ÎÙUdateSvgqGAÕdA÷�PUchapitreqU1UenCoursq‰Upublicq	‰us.

二進制
ressources/commun/17614-29604.jpg


+ 0 - 0
ressources/commun/dragon.png → ressources/dd35/dragon.png


+ 0 - 0
ressources/commun/dragon4.png → ressources/dd35/dragon4.png