Selaa lähdekoodia

Dialogue 'Charger plateau' reconstruite et fonctionnelle

unknown 10 vuotta sitten
vanhempi
commit
5cf080e55d

+ 25 - 13
DMonde.py

@@ -14,6 +14,7 @@ from PyQt4.QtGui import *
 from lib.ui.ecran_principal import Ui_principal
 
 from lib.EcranCreerPlateau import EcranCreerPlateau
+from lib.EcranChargerPlateau import EcranChargerPlateau
 from lib.EcranFondPlateau import EcranFondPlateau
 from lib.Plateau import Plateau
 from lib.EcranEditionCombattant import EcranEditionCombattant
@@ -111,19 +112,18 @@ class DMonde(QMainWindow):
         self.plateau.creer(nouvelId, nom, chapitre, formeCases, largeur, hauteur, couleur)
         QApplication.restoreOverrideCursor()
         del self.creationPlateau
-                                   
-    def sauverPlateau(self):
-        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
-        if self.plateau.id in afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.partie)):
-           idPlateau = self.plateau.id
-        else:   
-           idPlateau = str(len(afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.partie))))
 
-        enregistrerUnique(self.plateau, "parties\\{}\\svg\\{}.p".format(self.partie, idPlateau))
-        infos = {"nom": self.plateau.nom, "chapitre": self.plateau.chapitre, "dateCreation":self.plateau.dateCreation, "dateSvg":self.plateau.dateSvg, \
-                 "public": self.plateau.public, "enCours": self.plateau.enCours}
-        enregistrer(str(idPlateau), infos, "parties\\{}\\svg\\infos_sauvegarde".format(self.partie))
-        QApplication.restoreOverrideCursor()
+    def afficherEcranChargerPlateau(self):
+        """ouvre la fenetre de chargement de plateau"""
+        valide = True
+        if self.plateau != None:
+            if self.plateau.estCree() == True:
+                valide = False
+        if valide:
+            self.chargementPlateau = EcranChargerPlateau(self)
+            self.chargementPlateau.setWindowModality(Qt.ApplicationModal)
+            self.chargementPlateau.show()
+            self.chargementPlateau.raise_()
 
     def chargerPlateau(self, nomFichierSvg):
         if self.plateau != None:
@@ -135,8 +135,20 @@ class DMonde(QMainWindow):
             self.plateau.recreer(self)
         else:
             self.plateau = Plateau(self)
-        QApplication.restoreOverrideCursor()
+        QApplication.restoreOverrideCursor()    
+                                   
+    def sauverPlateau(self):
+        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
+        if self.plateau.id in afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.partie)):
+           idPlateau = self.plateau.id
+        else:   
+           idPlateau = str(len(afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.partie))))
 
+        enregistrerUnique(self.plateau, "parties\\{}\\svg\\{}.p".format(self.partie, idPlateau))
+        infos = {"nom": self.plateau.nom, "chapitre": self.plateau.chapitre, "dateCreation":self.plateau.dateCreation, "dateSvg":self.plateau.dateSvg, \
+                 "public": self.plateau.public, "enCours": self.plateau.enCours}
+        enregistrer(str(idPlateau), infos, "parties\\{}\\svg\\infos_sauvegarde".format(self.partie))
+        QApplication.restoreOverrideCursor()
     
     def fermerPlateau(self):
         self.plateau.fermer()

+ 3 - 3
lib/Case.py

@@ -47,10 +47,10 @@ class Case(QGraphicsPolygonItem):
     def __setstate__(self, state):
         """recupere les attributs sauvegardes"""
         self.__dict__ = state
-        if self.idTerrain == "00":
-            self.terrain = Terrain()
-        else:
+        if self.idTerrain:
             self.terrain = charger("lib\\biblio\\terrain", self.idTerrain)
+        else:
+            self.terrain = Terrain()
         
     ######## fonctions de base : geometrie, aspect graphique      ######
     def creer(self, x, y, couleur = QColor(0, 255, 0, 80)):

+ 0 - 163
lib/EcranChargementPlateau.py

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

+ 103 - 0
lib/EcranChargerPlateau.py

@@ -0,0 +1,103 @@
+#from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
+from __future__ import division
+from time import time, sleep, strftime, localtime
+
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from ui.ecran_chargerPlateau import Ui_chp_fenetre
+
+from outilsSvg import *
+
+class EcranChargerPlateau(QDialog):
+    """interface de creation/chargement de plateau"""
+    def __init__(self, fenetrePrincipale, terrain=None, parent=None):
+        """initialisation de la fenetre"""
+        super (EcranChargerPlateau, self).__init__()
+        self.fenetre = fenetrePrincipale
+        self.createWidgets()
+        self.majAffichage()
+        
+    def createWidgets(self):
+        """construction de l'interface"""
+        #construction de l'interface
+        self.ui = Ui_chp_fenetre()
+        self.ui.setupUi(self)
+        self.majListeChargement()
+        self.connect(self.ui.chp_supprimer, SIGNAL("clicked()"), self.supprimerPlateau)
+        self.connect(self.ui.chp_ok, SIGNAL("clicked()"), self.charger)
+        self.connect(self.ui.chp_chapitre, SIGNAL("valueChanged(int)"), self.majListeChargement)
+        self.connect(self.ui.chp_toutAfficher, SIGNAL("stateChanged(int)"), self.majListeChargement)
+        
+        self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.focusBoutonCharger)
+        self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.majAffichage)
+        self.connect(self.ui.chp_liste, SIGNAL("cellDoubleClicked(int,int)"), self.charger)
+
+    def charger(self):
+        """charge le plateau selectionne"""
+        index = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0)
+        self.fenetre.chargerPlateau(index)
+        self.done(1)
+            
+    def supprimerPlateau(self):
+        """supprime le plateau selectionne"""
+        reponse = QMessageBox.question(self, 'Avertissement',
+                                           QString().fromUtf8("Etes-vous sûr de vouloir supprimer ce plateau?"), QMessageBox.Yes | 
+                                           QMessageBox.No, QMessageBox.No)
+        if reponse == QMessageBox.Yes:       
+            index = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0)
+            os.remove("parties\\{}\\svg\\{}.p".format(self.fenetre.partie, index))
+            supprSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie), index)
+            self.majListeChargement()
+
+    def majAffichage(self):
+        self.ui.chp_ok.setEnabled(self.ui.chp_liste.currentRow()>=0)
+        self.ui.chp_supprimer.setEnabled(self.ui.chp_liste.currentRow()>=0)
+
+    def focusBoutonCharger(self):
+        self.ui.chp_ok.setFocus()
+
+    def majListeChargement(self):
+        """remplit ou maj la liste des plateaux sauvegardes"""
+        #on met a jour la largeur des colonnes
+        largeurs = [0, 30, 30, 310, 100, 0]
+        for col in self.ui.chp_liste.colonnes():
+            self.ui.chp_liste.setColumnWidth(col, largeurs[col]);
+
+        self.ui.chp_liste.setSortingEnabled(False)
+
+        self.ui.chp_liste.vider()
+        
+        infosSvg = afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie))
+        
+        for id_svg in infosSvg:
+            if infosSvg[id_svg]["chapitre"] == str(self.ui.chp_chapitre.value()) or bool(self.ui.chp_toutAfficher.checkState()) == True:
+                ligne = self.ui.chp_liste.nouvelleLigneFin()
+                self.ui.chp_liste.majTexte(ligne, 0, str(id_svg))
+                if infosSvg[id_svg]["public"] == True:
+                    icone = QIcon(":/interface/32/ressource/oeil_32.png")
+                else:
+                    icone = QIcon(":/interface/32/ressource/oeilBarre2_32.png")
+                item = QTableWidgetItem(icone, QString(""))
+                
+                self.ui.chp_liste.setItem(ligne, 1, item)
+                self.ui.chp_liste.majTexte(ligne, 2, (str(infosSvg[id_svg]["chapitre"])))
+                self.ui.chp_liste.majTexte(ligne, 3, infosSvg[id_svg]["nom"])
+                self.ui.chp_liste.majTexte(ligne, 4, strftime('%d/%m/%y %H:%M',localtime(infosSvg[id_svg]["dateSvg"])))
+                self.ui.chp_liste.majData(ligne, 5, infosSvg[id_svg]["dateSvg"])
+                
+        for col in self.ui.chp_liste.colonnes():
+            self.ui.chp_liste.sizeHintForColumn(col)
+            
+        #on trie par date
+        self.ui.chp_liste.setSortingEnabled(True)
+        self.ui.chp_liste.sortItems(5, 1)
+        self.majAffichage()
+        
+
+
+
+
+
+        

+ 1 - 1
lib/EcranFondPlateau.py

@@ -43,7 +43,7 @@ class EcranFondPlateau(QGraphicsScene):
         if cmdId == "creer":
             self.fenetre.afficherEcranCreerPlateau()
         elif cmdId == "charger":
-            print "charger"
+            self.fenetre.afficherEcranChargerPlateau()
         elif cmdId == "enCours":
             print "en cours"
         else:

+ 77 - 25
lib/ui/chargerPlateau.ui

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>chargerPlateau</class>
- <widget class="QDialog" name="chargerPlateau">
+ <class>chp_fenetre</class>
+ <widget class="QDialog" name="chp_fenetre">
   <property name="geometry">
    <rect>
     <x>0</x>
@@ -10,10 +10,27 @@
     <height>300</height>
    </rect>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>509</width>
+    <height>300</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>509</width>
+    <height>300</height>
+   </size>
+  </property>
+  <property name="font">
+   <font>
+    <family>Verdana</family>
+   </font>
+  </property>
   <property name="windowTitle">
    <string>Charger un plateau</string>
   </property>
-  <widget class="QTableWidget" name="listPlateau">
+  <widget class="DmTableWidget" name="chp_liste">
    <property name="geometry">
     <rect>
      <x>19</x>
@@ -34,6 +51,15 @@
         </color>
        </brush>
       </colorrole>
+      <colorrole role="Highlight">
+       <brush brushstyle="SolidPattern">
+        <color alpha="100">
+         <red>208</red>
+         <green>69</green>
+         <blue>0</blue>
+        </color>
+       </brush>
+      </colorrole>
       <colorrole role="AlternateBase">
        <brush brushstyle="SolidPattern">
         <color alpha="255">
@@ -54,6 +80,15 @@
         </color>
        </brush>
       </colorrole>
+      <colorrole role="Highlight">
+       <brush brushstyle="SolidPattern">
+        <color alpha="100">
+         <red>208</red>
+         <green>69</green>
+         <blue>0</blue>
+        </color>
+       </brush>
+      </colorrole>
       <colorrole role="AlternateBase">
        <brush brushstyle="SolidPattern">
         <color alpha="255">
@@ -74,6 +109,15 @@
         </color>
        </brush>
       </colorrole>
+      <colorrole role="Highlight">
+       <brush brushstyle="SolidPattern">
+        <color alpha="255">
+         <red>51</red>
+         <green>153</green>
+         <blue>255</blue>
+        </color>
+       </brush>
+      </colorrole>
       <colorrole role="AlternateBase">
        <brush brushstyle="SolidPattern">
         <color alpha="255">
@@ -88,7 +132,7 @@
    </property>
    <property name="font">
     <font>
-     <pointsize>10</pointsize>
+     <pointsize>8</pointsize>
     </font>
    </property>
    <property name="frameShape">
@@ -119,54 +163,55 @@
     <bool>true</bool>
    </property>
    <attribute name="horizontalHeaderVisible">
-    <bool>false</bool>
+    <bool>true</bool>
    </attribute>
    <attribute name="horizontalHeaderDefaultSectionSize">
     <number>80</number>
    </attribute>
+   <attribute name="horizontalHeaderHighlightSections">
+    <bool>false</bool>
+   </attribute>
    <attribute name="verticalHeaderVisible">
     <bool>false</bool>
    </attribute>
    <attribute name="verticalHeaderDefaultSectionSize">
     <number>24</number>
    </attribute>
+   <attribute name="verticalHeaderHighlightSections">
+    <bool>false</bool>
+   </attribute>
    <column>
     <property name="text">
-     <string>index</string>
-    </property>
-   </column>
-   <column>
-    <property name="text">
-     <string>Chapitre</string>
+     <string>idSvg</string>
     </property>
    </column>
    <column>
     <property name="text">
-     <string>Nom</string>
+     <string>  </string>
     </property>
    </column>
    <column>
     <property name="text">
-     <string>Creation</string>
+     <string>Ch.</string>
     </property>
    </column>
    <column>
     <property name="text">
-     <string>Sauvegarde</string>
+     <string>Nom</string>
     </property>
    </column>
    <column>
     <property name="text">
-     <string>Public</string>
+     <string>Date</string>
     </property>
    </column>
    <column>
     <property name="text">
-     <string>tri</string>
+     <string>date_tri</string>
     </property>
    </column>
   </widget>
-  <widget class="QCheckBox" name="toutAfficherPlateau">
+  <widget class="QCheckBox" name="chp_toutAfficher">
    <property name="geometry">
     <rect>
      <x>469</x>
@@ -179,7 +224,7 @@
     <string/>
    </property>
   </widget>
-  <widget class="QPushButton" name="chargerPlateau_2">
+  <widget class="QPushButton" name="chp_ok">
    <property name="enabled">
     <bool>false</bool>
    </property>
@@ -211,7 +256,7 @@
    </property>
    <property name="font">
     <font>
-     <pointsize>13</pointsize>
+     <pointsize>11</pointsize>
      <weight>75</weight>
      <bold>true</bold>
     </font>
@@ -220,7 +265,7 @@
     <string>Reprendre un plateau du chapitre:</string>
    </property>
   </widget>
-  <widget class="QPushButton" name="supprimerPlateau">
+  <widget class="QPushButton" name="chp_supprimer">
    <property name="enabled">
     <bool>false</bool>
    </property>
@@ -242,12 +287,12 @@
     <string>Suppr</string>
    </property>
   </widget>
-  <widget class="QSpinBox" name="chapitreChargementPlateau">
+  <widget class="QSpinBox" name="chp_chapitre">
    <property name="geometry">
     <rect>
-     <x>339</x>
+     <x>309</x>
      <y>5</y>
-     <width>41</width>
+     <width>61</width>
      <height>31</height>
     </rect>
    </property>
@@ -300,9 +345,9 @@
   <widget class="QLabel" name="label_12">
    <property name="geometry">
     <rect>
-     <x>400</x>
+     <x>390</x>
      <y>10</y>
-     <width>71</width>
+     <width>81</width>
      <height>21</height>
     </rect>
    </property>
@@ -316,6 +361,13 @@
    </property>
   </widget>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>DmTableWidget</class>
+   <extends>QTableWidget</extends>
+   <header>dm.h</header>
+  </customwidget>
+ </customwidgets>
  <resources>
   <include location="ressource.qrc"/>
  </resources>

+ 1 - 0
lib/ui/convertChargerPlateau.cmd

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

+ 18 - 6
lib/ui/creerPlateau.ui

@@ -10,6 +10,18 @@
     <height>203</height>
    </rect>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>485</width>
+    <height>203</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>485</width>
+    <height>203</height>
+   </size>
+  </property>
   <property name="font">
    <font>
     <family>Verdana</family>
@@ -79,7 +91,7 @@
     <number>1</number>
    </property>
    <property name="value">
-    <number>25</number>
+    <number>30</number>
    </property>
   </widget>
   <widget class="QPushButton" name="crp_ok">
@@ -89,7 +101,7 @@
    <property name="geometry">
     <rect>
      <x>350</x>
-     <y>150</y>
+     <y>155</y>
      <width>111</width>
      <height>30</height>
     </rect>
@@ -246,7 +258,7 @@
     </font>
    </property>
    <property name="minimum">
-    <number>1</number>
+    <number>5</number>
    </property>
    <property name="maximum">
     <number>300</number>
@@ -430,8 +442,8 @@
    </property>
    <property name="geometry">
     <rect>
-     <x>30</x>
-     <y>150</y>
+     <x>10</x>
+     <y>155</y>
      <width>141</width>
      <height>30</height>
     </rect>
@@ -475,7 +487,7 @@
     </rect>
    </property>
    <property name="currentIndex">
-    <number>0</number>
+    <number>1</number>
    </property>
    <property name="maxVisibleItems">
     <number>9</number>

+ 6 - 1
lib/ui/dm.py

@@ -219,7 +219,12 @@ class DmTableWidget(QTableWidget):
     def majData(self, ligne, colonne, var):
         """met a jour la cellule avec une donnee de type QVariant"""
         var = QVariant(var)
-        self.item(ligne, colonne).setData(0, var)
+        if not self.item(ligne, colonne):
+            item = QTableWidgetItem()
+            item.setData(0, var)
+            self.setItem(ligne, colonne, item)
+        else:
+            self.item(ligne, colonne).setData(0, var)
         return True
     
     def majTexte(self, ligne, colonne, texte):

+ 184 - 0
lib/ui/ecran_chargerPlateau.py

@@ -0,0 +1,184 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'chargerPlateau.ui'
+#
+# Created: Fri Jun 26 16:44:36 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_chp_fenetre(object):
+    def setupUi(self, chp_fenetre):
+        chp_fenetre.setObjectName(_fromUtf8("chp_fenetre"))
+        chp_fenetre.resize(509, 300)
+        chp_fenetre.setMinimumSize(QtCore.QSize(509, 300))
+        chp_fenetre.setMaximumSize(QtCore.QSize(509, 300))
+        font = QtGui.QFont()
+        font.setFamily(_fromUtf8("Verdana"))
+        chp_fenetre.setFont(font)
+        self.chp_liste = DmTableWidget(chp_fenetre)
+        self.chp_liste.setGeometry(QtCore.QRect(19, 41, 471, 211))
+        palette = QtGui.QPalette()
+        brush = QtGui.QBrush(QtGui.QColor(247, 247, 247))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
+        brush = QtGui.QBrush(QtGui.QColor(208, 69, 0, 100))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Highlight, brush)
+        brush = QtGui.QBrush(QtGui.QColor(229, 229, 229))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush)
+        brush = QtGui.QBrush(QtGui.QColor(247, 247, 247))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
+        brush = QtGui.QBrush(QtGui.QColor(208, 69, 0, 100))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Highlight, brush)
+        brush = QtGui.QBrush(QtGui.QColor(229, 229, 229))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush)
+        brush = QtGui.QBrush(QtGui.QColor(240, 240, 240))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
+        brush = QtGui.QBrush(QtGui.QColor(51, 153, 255))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Highlight, brush)
+        brush = QtGui.QBrush(QtGui.QColor(229, 229, 229))
+        brush.setStyle(QtCore.Qt.SolidPattern)
+        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush)
+        self.chp_liste.setPalette(palette)
+        font = QtGui.QFont()
+        font.setPointSize(8)
+        self.chp_liste.setFont(font)
+        self.chp_liste.setFrameShape(QtGui.QFrame.StyledPanel)
+        self.chp_liste.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
+        self.chp_liste.setProperty("showDropIndicator", False)
+        self.chp_liste.setDragDropOverwriteMode(False)
+        self.chp_liste.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
+        self.chp_liste.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
+        self.chp_liste.setShowGrid(True)
+        self.chp_liste.setGridStyle(QtCore.Qt.DotLine)
+        self.chp_liste.setCornerButtonEnabled(True)
+        self.chp_liste.setObjectName(_fromUtf8("chp_liste"))
+        self.chp_liste.setColumnCount(6)
+        self.chp_liste.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.chp_liste.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.chp_liste.setHorizontalHeaderItem(1, item)
+        item = QtGui.QTableWidgetItem()
+        self.chp_liste.setHorizontalHeaderItem(2, item)
+        item = QtGui.QTableWidgetItem()
+        self.chp_liste.setHorizontalHeaderItem(3, item)
+        item = QtGui.QTableWidgetItem()
+        self.chp_liste.setHorizontalHeaderItem(4, item)
+        item = QtGui.QTableWidgetItem()
+        self.chp_liste.setHorizontalHeaderItem(5, item)
+        self.chp_liste.horizontalHeader().setVisible(True)
+        self.chp_liste.horizontalHeader().setDefaultSectionSize(80)
+        self.chp_liste.horizontalHeader().setHighlightSections(False)
+        self.chp_liste.verticalHeader().setVisible(False)
+        self.chp_liste.verticalHeader().setDefaultSectionSize(24)
+        self.chp_liste.verticalHeader().setHighlightSections(False)
+        self.chp_toutAfficher = QtGui.QCheckBox(chp_fenetre)
+        self.chp_toutAfficher.setGeometry(QtCore.QRect(469, 11, 16, 20))
+        self.chp_toutAfficher.setText(_fromUtf8(""))
+        self.chp_toutAfficher.setObjectName(_fromUtf8("chp_toutAfficher"))
+        self.chp_ok = QtGui.QPushButton(chp_fenetre)
+        self.chp_ok.setEnabled(False)
+        self.chp_ok.setGeometry(QtCore.QRect(389, 258, 100, 30))
+        font = QtGui.QFont()
+        font.setPointSize(10)
+        self.chp_ok.setFont(font)
+        self.chp_ok.setObjectName(_fromUtf8("chp_ok"))
+        self.label_11 = QtGui.QLabel(chp_fenetre)
+        self.label_11.setGeometry(QtCore.QRect(19, 11, 311, 21))
+        font = QtGui.QFont()
+        font.setPointSize(11)
+        font.setBold(True)
+        font.setWeight(75)
+        self.label_11.setFont(font)
+        self.label_11.setObjectName(_fromUtf8("label_11"))
+        self.chp_supprimer = QtGui.QPushButton(chp_fenetre)
+        self.chp_supprimer.setEnabled(False)
+        self.chp_supprimer.setGeometry(QtCore.QRect(19, 258, 81, 31))
+        font = QtGui.QFont()
+        font.setPointSize(10)
+        font.setItalic(True)
+        self.chp_supprimer.setFont(font)
+        self.chp_supprimer.setObjectName(_fromUtf8("chp_supprimer"))
+        self.chp_chapitre = QtGui.QSpinBox(chp_fenetre)
+        self.chp_chapitre.setGeometry(QtCore.QRect(309, 5, 61, 31))
+        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.chp_chapitre.setPalette(palette)
+        font = QtGui.QFont()
+        font.setPointSize(10)
+        self.chp_chapitre.setFont(font)
+        self.chp_chapitre.setMinimum(1)
+        self.chp_chapitre.setObjectName(_fromUtf8("chp_chapitre"))
+        self.label_12 = QtGui.QLabel(chp_fenetre)
+        self.label_12.setGeometry(QtCore.QRect(390, 10, 81, 21))
+        font = QtGui.QFont()
+        font.setItalic(True)
+        self.label_12.setFont(font)
+        self.label_12.setObjectName(_fromUtf8("label_12"))
+
+        self.retranslateUi(chp_fenetre)
+        QtCore.QMetaObject.connectSlotsByName(chp_fenetre)
+
+    def retranslateUi(self, chp_fenetre):
+        chp_fenetre.setWindowTitle(_translate("chp_fenetre", "Charger un plateau", None))
+        item = self.chp_liste.horizontalHeaderItem(0)
+        item.setText(_translate("chp_fenetre", "idSvg", None))
+        item = self.chp_liste.horizontalHeaderItem(1)
+        item.setText(_translate("chp_fenetre", "  ", None))
+        item = self.chp_liste.horizontalHeaderItem(2)
+        item.setText(_translate("chp_fenetre", "Ch.", None))
+        item = self.chp_liste.horizontalHeaderItem(3)
+        item.setText(_translate("chp_fenetre", "Nom", None))
+        item = self.chp_liste.horizontalHeaderItem(4)
+        item.setText(_translate("chp_fenetre", "Date", None))
+        item = self.chp_liste.horizontalHeaderItem(5)
+        item.setText(_translate("chp_fenetre", "date_tri", None))
+        self.chp_ok.setText(_translate("chp_fenetre", "Ok", None))
+        self.label_11.setText(_translate("chp_fenetre", "Reprendre un plateau du chapitre:", None))
+        self.chp_supprimer.setText(_translate("chp_fenetre", "Suppr", None))
+        self.label_12.setText(_translate("chp_fenetre", "Tout afficher:", None))
+
+from dm import DmTableWidget
+import ressource_rc
+
+if __name__ == "__main__":
+    import sys
+    app = QtGui.QApplication(sys.argv)
+    chp_fenetre = QtGui.QDialog()
+    ui = Ui_chp_fenetre()
+    ui.setupUi(chp_fenetre)
+    chp_fenetre.show()
+    sys.exit(app.exec_())
+

+ 8 - 6
lib/ui/ecran_creerPlateau.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'creerPlateau.ui'
 #
-# Created: Fri Jun 26 15:41:28 2015
+# Created: Fri Jun 26 16:07:57 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -27,6 +27,8 @@ class Ui_crp_fenetre(object):
     def setupUi(self, crp_fenetre):
         crp_fenetre.setObjectName(_fromUtf8("crp_fenetre"))
         crp_fenetre.resize(485, 203)
+        crp_fenetre.setMinimumSize(QtCore.QSize(485, 203))
+        crp_fenetre.setMaximumSize(QtCore.QSize(485, 203))
         font = QtGui.QFont()
         font.setFamily(_fromUtf8("Verdana"))
         crp_fenetre.setFont(font)
@@ -49,11 +51,11 @@ class Ui_crp_fenetre(object):
         self.crp_hauteur.setMinimum(5)
         self.crp_hauteur.setMaximum(300)
         self.crp_hauteur.setSingleStep(1)
-        self.crp_hauteur.setProperty("value", 25)
+        self.crp_hauteur.setProperty("value", 30)
         self.crp_hauteur.setObjectName(_fromUtf8("crp_hauteur"))
         self.crp_ok = QtGui.QPushButton(crp_fenetre)
         self.crp_ok.setEnabled(False)
-        self.crp_ok.setGeometry(QtCore.QRect(350, 150, 111, 30))
+        self.crp_ok.setGeometry(QtCore.QRect(350, 155, 111, 30))
         font = QtGui.QFont()
         font.setPointSize(10)
         self.crp_ok.setFont(font)
@@ -104,7 +106,7 @@ class Ui_crp_fenetre(object):
         font = QtGui.QFont()
         font.setPointSize(10)
         self.crp_largeur.setFont(font)
-        self.crp_largeur.setMinimum(1)
+        self.crp_largeur.setMinimum(5)
         self.crp_largeur.setMaximum(300)
         self.crp_largeur.setSingleStep(1)
         self.crp_largeur.setProperty("value", 50)
@@ -167,7 +169,7 @@ class Ui_crp_fenetre(object):
         self.label.setObjectName(_fromUtf8("label"))
         self.crp_chercherModele = QtGui.QPushButton(crp_fenetre)
         self.crp_chercherModele.setEnabled(False)
-        self.crp_chercherModele.setGeometry(QtCore.QRect(30, 150, 141, 30))
+        self.crp_chercherModele.setGeometry(QtCore.QRect(10, 155, 141, 30))
         font = QtGui.QFont()
         font.setPointSize(10)
         self.crp_chercherModele.setFont(font)
@@ -195,7 +197,7 @@ class Ui_crp_fenetre(object):
         self.crp_listeDimensions.addItem(_fromUtf8(""))
 
         self.retranslateUi(crp_fenetre)
-        self.crp_listeDimensions.setCurrentIndex(0)
+        self.crp_listeDimensions.setCurrentIndex(1)
         QtCore.QMetaObject.connectSlotsByName(crp_fenetre)
 
     def retranslateUi(self, crp_fenetre):

BIN
parties/Partie1/svg/0.p


BIN
parties/Partie1/svg/1.p


BIN
parties/Partie1/svg/2.p


+ 1 - 7
parties/Partie1/svg/infos_sauvegarde

@@ -1,7 +1 @@
-€}q(U1}q(Unomcsip
-_unpickle_type
-qUPyQt4.QtCoreqU
-QByteArrayUrty…‡RqUdateCreationGAÕ[oËa‰7UdateSvgGAÕ[oÏ¥VUchapitreU1UenCours‰Upublic‰uU0}q(UnomhhU
-QByteArrayUwxc…‡RqUdateCreationGAÕ[:š-UdateSvgGAÕ[Qu/UchapitreU1UenCours‰Upublic‰uU2}q(Unomq	hhU
-QByteArrayUert…‡Rq
-UdateCreationqGAÕ[s‚c…UdateSvgqGAÕ[sƒí¸Uchapitreq
U1UenCoursq‰Upublicq‰uu.
+€}q.