Jelajahi Sumber

Maj de l'altitude des cases
Dialogue Vol créée

unknown 10 tahun lalu
induk
melakukan
2e4b88c02c
13 mengubah file dengan 407 tambahan dan 52 penghapusan
  1. 24 10
      lib/Case.py
  2. 52 0
      lib/EcranVol.py
  3. 9 1
      lib/Modes.py
  4. 1 0
      lib/Pion.py
  5. 8 0
      lib/Plateau.py
  6. 18 0
      lib/dmK.py
  7. 1 0
      lib/ui/convertVol.cmd
  8. 86 0
      lib/ui/dial_vol.ui
  9. 10 0
      lib/ui/dm.py
  10. 1 1
      lib/ui/ecran_affichageTexte.py
  11. 33 11
      lib/ui/ecran_principal.py
  12. 68 0
      lib/ui/ecran_vol.py
  13. 96 29
      lib/ui/mainwindow.ui

+ 24 - 10
lib/Case.py

@@ -88,12 +88,9 @@ class Case(QGraphicsPolygonItem):
         self.setZValue(0)
         self.setFiltersChildEvents(True)
 
-#        #pour afficher les coordonnees des cases:        
-#         text = QGraphicsSimpleTextItem("{}-{}".format(self.x,self.y), parent=self)
-#         if self.plateau.formeCases == "H":
-#             text.setPos(QPointF(((self.x*0.866)+0.2886)*self.plateau.hCase,  (self.y+k+0.5)*self.plateau.hCase))
-#         else:
-#             text.setPos(QPointF(self.x*self.plateau.hCase,  self.y*self.plateau.hCase))
+#        #pour afficher les coordonnees des cases:  
+        self.etiquette = None
+#         self.afficherEtiquette("{}-{}".format(self.x,self.y))     
 
         self.logoDep = LogoDep(self)
         self.logoDep.creer()
@@ -162,6 +159,21 @@ class Case(QGraphicsPolygonItem):
             if (coord[0] >= 0 and coord[1] >= 0 and coord[0] < self.plateau.nbCasesX and coord[1] < self.plateau.nbCasesY):
                 voisins.append(coord)
         return voisins                           
+    
+    def afficherEtiquette(self, txt):
+        """affiche l'etiquette avec le texte demande"""
+        if self.etiquette == None:
+            self.etiquette = QGraphicsSimpleTextItem(QString().fromUtf8(str(txt)), parent=self)
+            k = 0
+            if 1 == (self.x % 2): k = 0.5
+            if self.plateau.formeCases == "H":
+                self.etiquette.setPos(QPointF(((self.x*0.866)+0.2886)*self.plateau.hCase,  (self.y+k+0.5)*self.plateau.hCase))
+            else:
+                self.etiquette.setPos(QPointF(self.x*self.plateau.hCase,  self.y*self.plateau.hCase))
+        else:
+            self.etiquette.setText(QString().fromUtf8(str(txt)))
+      
+    
      
     ########################
 
@@ -242,6 +254,7 @@ class Case(QGraphicsPolygonItem):
 
     ########## fonctions de maj ###########
     def majTerrain(self, terrain = Terrain()):
+        """met a jour le terrain de la case"""
         self.terrain = terrain
         if self.terrain.imgTexture.estValide():
             self.setBrush(QBrush(QImage(self.terrain.imgTexture.chemin())))
@@ -253,6 +266,11 @@ class Case(QGraphicsPolygonItem):
         pinceau.setWidth(1)
         self.setPen(pinceau)
 
+    def majAltitude(self, altitude):
+        """met a jour l'altitude de la case"""
+        self.altitude = altitude  
+        self.afficherEtiquette(altitude)   
+
     def majAffichageDeplacement(self, cout, valide = True):
         """lorsque cette case est sur le chemin d'un pion,
             un disque blanc ou rouge apparait indiquant le
@@ -309,10 +327,6 @@ class Case(QGraphicsPolygonItem):
         else:
             self.polygoneEffet.setVisible(False)              
 
-    def majAltitude(self, altitude):
-        """met a jour l'altitude de la case"""
-        self.altitude = altitude
-
     def majAffichageSpecial(self, affichage=""):
         """donne a la case l'aspect demande en rendant visible/invisible le polygone d'affichage special"""
         #polygone d'affichage special (altitude, tactique...)

+ 52 - 0
lib/EcranVol.py

@@ -0,0 +1,52 @@
+#from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
+import os, sys
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+from ui.ecran_vol import Ui_vol_fenetre
+
+class EcranVol(QDialog):
+    """interface de gestion du vol d'un pion
+        renvoie la nouvelle altitude du pion"""
+    def __init__(self, actuelle = 0, parent=None):
+        """initialisation de la fenetre"""
+        super (EcranVol, self).__init__(parent)
+        self._resultat = 0
+        self.createWidgets()
+        self.ouverture(actuelle)
+          
+    def createWidgets(self):
+        """construction de l'interface"""
+        #construction de l'interface
+        self.ui = Ui_vol_fenetre()
+        self.ui.setupUi(self)                                                          
+        self.connect(self.ui.vol_ok, SIGNAL("clicked()"), self.ok)
+        self.ui.vol_valeur.selectAll()
+        
+    def ouverture(self, actuelle):
+        """ouverture en mode edition"""
+        self._resultat = actuelle
+        self.ui.vol_valeur.setValue(actuelle)
+
+    def resultat(self):
+        return self._resultat
+
+    def ok(self):
+        """enregistre le terrain cree/edite"""
+        self._resultat = self.ui.vol_valeur.value()
+        self.done(1)
+
+    def keyPressEvent(self, event):
+        if event.key() == Qt.Key_Return:
+            self.ok()
+
+if __name__ == "__main__":
+   app = QApplication(sys.argv)
+   ecran = EcranVol(2)
+   ecran.show()
+   r = app.exec_()
+   print ecran.resultat()
+   exit(r)  
+
+
+ 

+ 9 - 1
lib/Modes.py

@@ -13,6 +13,7 @@ import regles
 from Pion import Pion
 from Combattant import Combattant
 from Decor import Decor
+import dmK
 
 class ModeBase(object):
     """mode de base: tous les modes heritent de cette classe"""
@@ -212,7 +213,7 @@ class MajCases(ModeBaseCp):
 
     def majParam(self, param):
         self._param = param
-
+        
     def param(self):
         return self._param
 
@@ -228,6 +229,7 @@ class MajCases(ModeBaseCp):
         if self.plateau.pinceau.estActif():
             for coord in self.plateau.pinceau.selection():
                 self.plateau.cases[coord].majTerrain(self._param)
+                self.plateau.cases[coord].majAltitude(self.plateau.fenetre.ui.cp_valeurAltitude.value())
                 self.plateau.pinceau.reinit()
             self.reinit()
 
@@ -417,6 +419,9 @@ class CreationPion(ModeBaseCp):
     def clic_case(self, coord):
         if self._pion:
             if not self.plateau.cases[coord].pionOccupant():
+                if isinstance(self._pion, Combattant) and dmK.touchesEnfoncees() == ["maj"]:
+                    nouveauZ = self.plateau.dialogueVol(self._pion.z)
+                    self._pion.majZ(nouveauZ)
                 self.plateau.creerPion(self._pion)
 
     def toucheClavier(self, event):
@@ -513,6 +518,9 @@ class DeplacementPion(ModeBaseCp):
             if self.deplace:
                 if self._num < 10000:
                     pion = self.plateau.combattants[self._num]
+                    if dmK.touchesEnfoncees() == ["maj"]:
+                        nouveauZ = self.plateau.dialogueVol(pion.z)
+                        pion.majZ(nouveauZ)
                 else:
                     pion = self.plateau.decors[self._num]
                 pion.majPosition(self.plateau.proj.coord(), self.plateau.proj.nbRotations())

+ 1 - 0
lib/Pion.py

@@ -9,6 +9,7 @@ from PyQt4.QtGui import *
 from Forme import Forme
 from outilsSvg import *
 from rsc import *
+import dmK
 
 class Pion(QGraphicsItem):
     """pion du plateau de combat"""

+ 8 - 0
lib/Plateau.py

@@ -30,6 +30,7 @@ from EcranEditionTerrain import EcranEditionTerrain
 from EcranAffichageTexte import EcranAffichageTexte
 from EcranGestionCombat import EcranGestionCombat
 from EcranSelectionPj import EcranSelectionPj
+from EcranVol import EcranVol
 
 import regles as regles
 from outilsSvg import *
@@ -1382,6 +1383,13 @@ class Plateau(QGraphicsScene):
         if self.pionSelectionne() != None:
             self.pionSelectionne().majZ(valeur)
 
+    def dialogueVol(self, actuelle):
+        nouvelle = actuelle
+        ecran = EcranVol(actuelle)
+        ecran.exec_() 
+        nouvelle = ecran.resultat()
+        del ecran
+        return nouvelle   
             
     def pionSupprimer(self, num):
         """supprime le pion entre en parametre"""

+ 18 - 0
lib/dmK.py

@@ -0,0 +1,18 @@
+#from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
+"""gestion des raccourcis claviers"""
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+
+def touchesEnfoncees():
+    """renvoie la/les touche(s) clavier actuellement enfoncee(s)"""
+    retour = []
+    touches = QApplication.keyboardModifiers()
+    if touches == Qt.ShiftModifier:
+        retour = ["maj"]
+    elif touches == Qt.ControlModifier:
+        retour = ["ctrl"]
+    elif touches == (Qt.ControlModifier | Qt.ShiftModifier):
+        retour = ["ctrl", "maj"]
+    return retour

+ 1 - 0
lib/ui/convertVol.cmd

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

+ 86 - 0
lib/ui/dial_vol.ui

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>vol_fenetre</class>
+ <widget class="QDialog" name="vol_fenetre">
+  <property name="windowModality">
+   <enum>Qt::WindowModal</enum>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>196</width>
+    <height>71</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>196</width>
+    <height>71</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>196</width>
+    <height>71</height>
+   </size>
+  </property>
+  <property name="font">
+   <font>
+    <family>Verdana</family>
+   </font>
+  </property>
+  <property name="windowTitle">
+   <string>Vol</string>
+  </property>
+  <widget class="DmSpinBox" name="vol_valeur">
+   <property name="geometry">
+    <rect>
+     <x>20</x>
+     <y>10</y>
+     <width>101</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="font">
+    <font>
+     <pointsize>18</pointsize>
+    </font>
+   </property>
+  </widget>
+  <widget class="QToolButton" name="vol_ok">
+   <property name="geometry">
+    <rect>
+     <x>130</x>
+     <y>10</y>
+     <width>51</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string/>
+   </property>
+   <property name="icon">
+    <iconset resource="ressource.qrc">
+     <normaloff>:/interface/32/ressource/oiseau_32.png</normaloff>:/interface/32/ressource/oiseau_32.png</iconset>
+   </property>
+   <property name="iconSize">
+    <size>
+     <width>32</width>
+     <height>32</height>
+    </size>
+   </property>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>DmSpinBox</class>
+   <extends>QSpinBox</extends>
+   <header>dm.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="ressource.qrc"/>
+ </resources>
+ <connections/>
+</ui>

+ 10 - 0
lib/ui/dm.py

@@ -139,6 +139,16 @@ class DmComboBox(QComboBox):
         """renvoie sous forme de QVariant la valeur en cours"""
         return self.itemData(self.currentIndex())
 
+class DmSpinBox(QSpinBox):
+    """surcharge de QSpinBox"""
+    def __init__(self, parent = None):
+        super(DmSpinBox, self).__init__(parent)
+    
+    def focusInEvent(self, event):
+        super(DmSpinBox, self).focusInEvent(event)
+        self.selectAll()
+
+
 class DmTabInventaire(QTabWidget):
     """surcharge de QTabWidget stylisee et
         utilisee pour filtrer les types d'objets affiches"""

+ 1 - 1
lib/ui/ecran_affichageTexte.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'affichageTexte.ui'
 #
-# Created: Fri Jun 26 11:38:23 2015
+# Created: Fri Jul 10 11:04:36 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!

+ 33 - 11
lib/ui/ecran_principal.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'mainwindow.ui'
 #
-# Created: Thu Jul 09 16:34:50 2015
+# Created: Fri Jul 10 10:11:26 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -837,6 +837,35 @@ class Ui_principal(object):
         icon24.addPixmap(QtGui.QPixmap(_fromUtf8(":/interface/32/ressource/mainCache_32.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.cp_ongletsListes.addTab(self.cp_afficherCaches, icon24, _fromUtf8(""))
         self.verticalLayout_3.addWidget(self.cp_ongletsListes)
+        self.horizontalLayout_10 = QtGui.QHBoxLayout()
+        self.horizontalLayout_10.setContentsMargins(-1, 0, -1, -1)
+        self.horizontalLayout_10.setObjectName(_fromUtf8("horizontalLayout_10"))
+        self.cp_altitudes = QtGui.QToolButton(self.cp_panneau)
+        self.cp_altitudes.setMinimumSize(QtCore.QSize(41, 31))
+        self.cp_altitudes.setMaximumSize(QtCore.QSize(41, 31))
+        self.cp_altitudes.setText(_fromUtf8(""))
+        self.cp_altitudes.setIcon(icon19)
+        self.cp_altitudes.setObjectName(_fromUtf8("cp_altitudes"))
+        self.horizontalLayout_10.addWidget(self.cp_altitudes)
+        self.cp_valeurAltitude = QtGui.QSpinBox(self.cp_panneau)
+        self.cp_valeurAltitude.setMinimumSize(QtCore.QSize(50, 28))
+        self.cp_valeurAltitude.setMaximumSize(QtCore.QSize(50, 28))
+        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.cp_valeurAltitude.setPalette(palette)
+        self.cp_valeurAltitude.setMinimum(-999)
+        self.cp_valeurAltitude.setMaximum(999)
+        self.cp_valeurAltitude.setObjectName(_fromUtf8("cp_valeurAltitude"))
+        self.horizontalLayout_10.addWidget(self.cp_valeurAltitude)
+        self.verticalLayout_3.addLayout(self.horizontalLayout_10)
         self.creationPlateau_sousPanneauBas = QtGui.QFrame(self.cp_panneau)
         self.creationPlateau_sousPanneauBas.setMinimumSize(QtCore.QSize(154, 81))
         self.creationPlateau_sousPanneauBas.setMaximumSize(QtCore.QSize(154, 81))
@@ -861,13 +890,6 @@ class Ui_principal(object):
         self.cp_placerSortie.setIcon(icon26)
         self.cp_placerSortie.setObjectName(_fromUtf8("cp_placerSortie"))
         self.gridLayout_3.addWidget(self.cp_placerSortie, 2, 2, 1, 1)
-        self.cp_altitudes = QtGui.QToolButton(self.creationPlateau_sousPanneauBas)
-        self.cp_altitudes.setMinimumSize(QtCore.QSize(41, 31))
-        self.cp_altitudes.setMaximumSize(QtCore.QSize(41, 31))
-        self.cp_altitudes.setText(_fromUtf8(""))
-        self.cp_altitudes.setIcon(icon19)
-        self.cp_altitudes.setObjectName(_fromUtf8("cp_altitudes"))
-        self.gridLayout_3.addWidget(self.cp_altitudes, 0, 2, 1, 1)
         self.cp_effets = QtGui.QComboBox(self.creationPlateau_sousPanneauBas)
         self.cp_effets.setMinimumSize(QtCore.QSize(41, 31))
         self.cp_effets.setMaximumSize(QtCore.QSize(41, 31))
@@ -1271,7 +1293,7 @@ class Ui_principal(object):
         self.grp_deroulement.setWidgetResizable(True)
         self.grp_deroulement.setObjectName(_fromUtf8("grp_deroulement"))
         self.grp_deroulement_contenu = QtGui.QWidget()
-        self.grp_deroulement_contenu.setGeometry(QtCore.QRect(0, 0, 100, 30))
+        self.grp_deroulement_contenu.setGeometry(QtCore.QRect(0, 0, 756, 588))
         palette = QtGui.QPalette()
         brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
         brush.setStyle(QtCore.Qt.SolidPattern)
@@ -1620,7 +1642,7 @@ class Ui_principal(object):
         self.cbt_panneauHaut.setCurrentIndex(1)
         self.cbt_panneauGauche.setCurrentIndex(1)
         self.cbt_panneauBas.setCurrentIndex(1)
-        self.cbt_panneauDroite.setCurrentIndex(2)
+        self.cbt_panneauDroite.setCurrentIndex(1)
         self.cp_ongletsListes.setCurrentIndex(3)
         self.pi_ongletsListes.setCurrentIndex(0)
         self.tabStatutAppli.setCurrentIndex(2)
@@ -1726,11 +1748,11 @@ class Ui_principal(object):
         item = self.cp_listeCaches.horizontalHeaderItem(2)
         item.setText(_translate("principal", "activer", None))
         self.cp_ongletsListes.setTabToolTip(self.cp_ongletsListes.indexOf(self.cp_afficherCaches), _translate("principal", "Afficher les notes du plateau", None))
+        self.cp_altitudes.setToolTip(_translate("principal", "Modifier l\'altitude des cases", None))
         self.cp_placerEntree.setToolTip(_translate("principal", "Placer la/les entrée(s)", None))
         self.cp_placerEntree.setText(_translate("principal", "...", None))
         self.cp_placerSortie.setToolTip(_translate("principal", "Placer la/les sortie(s)", None))
         self.cp_placerSortie.setText(_translate("principal", "...", None))
-        self.cp_altitudes.setToolTip(_translate("principal", "Modifier l\'altitude des cases", None))
         self.cp_effets.setToolTip(_translate("principal", "Effets spéciaux", None))
         self.cp_afficherNotes.setToolTip(_translate("principal", "Gérer les caches", None))
         self.cp_afficherNotes.setText(_translate("principal", "...", None))

+ 68 - 0
lib/ui/ecran_vol.py

@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'dial_vol.ui'
+#
+# Created: Fri Jul 10 11:04:37 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_vol_fenetre(object):
+    def setupUi(self, vol_fenetre):
+        vol_fenetre.setObjectName(_fromUtf8("vol_fenetre"))
+        vol_fenetre.setWindowModality(QtCore.Qt.WindowModal)
+        vol_fenetre.resize(196, 71)
+        vol_fenetre.setMinimumSize(QtCore.QSize(196, 71))
+        vol_fenetre.setMaximumSize(QtCore.QSize(196, 71))
+        font = QtGui.QFont()
+        font.setFamily(_fromUtf8("Verdana"))
+        vol_fenetre.setFont(font)
+        self.vol_valeur = DmSpinBox(vol_fenetre)
+        self.vol_valeur.setGeometry(QtCore.QRect(20, 10, 101, 51))
+        font = QtGui.QFont()
+        font.setPointSize(18)
+        self.vol_valeur.setFont(font)
+        self.vol_valeur.setObjectName(_fromUtf8("vol_valeur"))
+        self.vol_ok = QtGui.QToolButton(vol_fenetre)
+        self.vol_ok.setGeometry(QtCore.QRect(130, 10, 51, 51))
+        self.vol_ok.setText(_fromUtf8(""))
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/interface/32/ressource/oiseau_32.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.vol_ok.setIcon(icon)
+        self.vol_ok.setIconSize(QtCore.QSize(32, 32))
+        self.vol_ok.setObjectName(_fromUtf8("vol_ok"))
+
+        self.retranslateUi(vol_fenetre)
+        QtCore.QMetaObject.connectSlotsByName(vol_fenetre)
+
+    def retranslateUi(self, vol_fenetre):
+        vol_fenetre.setWindowTitle(_translate("vol_fenetre", "Vol", None))
+
+from dm import DmSpinBox
+import ressource_rc
+
+if __name__ == "__main__":
+    import sys
+    app = QtGui.QApplication(sys.argv)
+    vol_fenetre = QtGui.QDialog()
+    ui = Ui_vol_fenetre()
+    ui.setupUi(vol_fenetre)
+    vol_fenetre.show()
+    sys.exit(app.exec_())
+

+ 96 - 29
lib/ui/mainwindow.ui

@@ -1279,7 +1279,7 @@
                </size>
               </property>
               <property name="currentIndex">
-               <number>2</number>
+               <number>1</number>
               </property>
               <widget class="QWidget" name="cbt_panneauDroite0"/>
               <widget class="QWidget" name="cbt_panneauDroite1">
@@ -2511,6 +2511,98 @@
                      </widget>
                     </widget>
                    </item>
+                   <item>
+                    <layout class="QHBoxLayout" name="horizontalLayout_10">
+                     <property name="topMargin">
+                      <number>0</number>
+                     </property>
+                     <item>
+                      <widget class="QToolButton" name="cp_altitudes">
+                       <property name="minimumSize">
+                        <size>
+                         <width>41</width>
+                         <height>31</height>
+                        </size>
+                       </property>
+                       <property name="maximumSize">
+                        <size>
+                         <width>41</width>
+                         <height>31</height>
+                        </size>
+                       </property>
+                       <property name="toolTip">
+                        <string>Modifier l'altitude des cases</string>
+                       </property>
+                       <property name="text">
+                        <string/>
+                       </property>
+                       <property name="icon">
+                        <iconset resource="ressource.qrc">
+                         <normaloff>:/interface/32/ressource/montagne_32.png</normaloff>:/interface/32/ressource/montagne_32.png</iconset>
+                       </property>
+                      </widget>
+                     </item>
+                     <item>
+                      <widget class="QSpinBox" name="cp_valeurAltitude">
+                       <property name="minimumSize">
+                        <size>
+                         <width>50</width>
+                         <height>28</height>
+                        </size>
+                       </property>
+                       <property name="maximumSize">
+                        <size>
+                         <width>50</width>
+                         <height>28</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>
+                       <property name="minimum">
+                        <number>-999</number>
+                       </property>
+                       <property name="maximum">
+                        <number>999</number>
+                       </property>
+                      </widget>
+                     </item>
+                    </layout>
+                   </item>
                    <item>
                     <widget class="QFrame" name="creationPlateau_sousPanneauBas">
                      <property name="minimumSize">
@@ -2584,32 +2676,6 @@
                         </property>
                        </widget>
                       </item>
-                      <item row="0" column="2">
-                       <widget class="QToolButton" name="cp_altitudes">
-                        <property name="minimumSize">
-                         <size>
-                          <width>41</width>
-                          <height>31</height>
-                         </size>
-                        </property>
-                        <property name="maximumSize">
-                         <size>
-                          <width>41</width>
-                          <height>31</height>
-                         </size>
-                        </property>
-                        <property name="toolTip">
-                         <string>Modifier l'altitude des cases</string>
-                        </property>
-                        <property name="text">
-                         <string/>
-                        </property>
-                        <property name="icon">
-                         <iconset resource="ressource.qrc">
-                          <normaloff>:/interface/32/ressource/montagne_32.png</normaloff>:/interface/32/ressource/montagne_32.png</iconset>
-                        </property>
-                       </widget>
-                      </item>
                       <item row="0" column="1">
                        <widget class="QComboBox" name="cp_effets">
                         <property name="minimumSize">
@@ -2734,6 +2800,7 @@
                   <zorder>creationPlateau_sousPanneauBas</zorder>
                   <zorder>cP_boiteFormes</zorder>
                   <zorder>cp_boiteCouleurs</zorder>
+                  <zorder>horizontalLayoutWidget</zorder>
                  </widget>
                 </item>
                </layout>
@@ -3850,8 +3917,8 @@ selectionné</string>
             <rect>
              <x>0</x>
              <y>0</y>
-             <width>100</width>
-             <height>30</height>
+             <width>756</width>
+             <height>588</height>
             </rect>
            </property>
            <property name="palette">