Quellcode durchsuchen

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

unknown vor 10 Jahren
Ursprung
Commit
2e4b88c02c
13 geänderte Dateien mit 407 neuen und 52 gelöschten Zeilen
  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">