]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
le bug du bloc
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 22 Sep 2015 15:26:46 +0000 (17:26 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 22 Sep 2015 15:26:46 +0000 (17:26 +0200)
15 files changed:
Editeur/Objecttreeitem.py
Ihm/CONNECTOR.py
InterfaceQT4/browser.py
InterfaceQT4/monChoixCommande.py
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetCommentaire.py
InterfaceQT4/monWidgetCreeParam.py
InterfaceQT4/monWidgetOptionnel.py
InterfaceQT4/monWidgetParam.py
InterfaceQT4/monWidgetPlusieursInto.py
UiQT4/desWidgetOptionnel.ui
UiQT4/eficas_en.qm
UiQT4/eficas_fr.ts
convert/parseur_python.py
generator/generator_TELEMAC.py

index 5658eeba61833ce41828fb3e408e7781981fe0ea..6ad5ae202ebe084d760596c48c4b7c2fe254a3be 100644 (file)
@@ -162,6 +162,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         """ Connecte la fonction callable (avec arguments args) à l'item self sur le 
             canal channel
         """
+        #print self,channel,callable,args
         CONNECTOR.Connect(self._object,channel,callable,args)
         CONNECTOR.Connect(self.object, channel,callable,args)
 
index 429501dd008717d4ee73e374f14a3fbb8c25c504..07e6f055ed5e7d344c1510e0808bf5cdca575421 100644 (file)
@@ -106,8 +106,9 @@ class CONNECTOR:
     try:
        receivers = self.connections[id(object)][channel]
     except KeyError:
+       #print "ds except"
        return
-    ###print "Emit",object, channel, receivers
+    #print "Emit",object, channel, receivers
     # Attention : copie pour eviter les pbs lies aux deconnexion reconnexion
     # pendant l'execution des emit
     for rfunc, fargs in copy(receivers):
index f35530fbebd55015c6b25cd0b31539a1db0e6e94..302719f23a2a4230692e5d67a3d4a61d13c5cb0c 100644 (file)
@@ -52,7 +52,6 @@ class JDCTree( QTreeWidget,GereRegles ):
         self.tree          = self        
         self.appliEficas   = self.editor.appliEficas
         self.childrenComplete=[]
-        self.childrenIssusDesBlocs=[]
         self.racine=self.item.itemNode(self,self.item)
  
         self.itemCourrant=None
@@ -134,9 +133,10 @@ class JDCTree( QTreeWidget,GereRegles ):
              return
         item.deplieToutEtReaffiche()
 
+
     def handleOnItem(self,item,int):
         #if (len(self.selectedIndexes())!=2): return
-        #print "je passe dans handleOnItem pour ", self.item.nom
+        #print "je passe dans handleOnItem pour ", item.item.nom, item, item.item
         self.inhibeExpand == True 
         self.itemCourrant=item
         itemParent=item
@@ -174,7 +174,6 @@ PARAMETERS  = "PARAMETRE"
 class JDCNode(QTreeWidgetItem,GereRegles):
     def __init__( self, treeParent, item):
         #print "creation d'un noeud : ", item, " ",item.nom,"", treeParent, self
-        #print "creation d'un noeud : ", item.nom
         self.a=0
         self.item        = item
         self.vraiParent  = treeParent
@@ -182,7 +181,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.tree        = self.treeParent.tree
         self.editor     = self.treeParent.editor
         self.appliEficas = treeParent.appliEficas
-        self.treeParent.childrenIssusDesBlocs=[]
+        self.JESUISOFF=0
         self.childrenComplete=[]
                         
         from InterfaceQT4 import compocomm
@@ -203,26 +202,20 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         else :
             self.plie        = False
             self.appartientAUnNoeudPlie = False
-        #print self.treeParent
 
-        ajoutAuParentduNoeud=0
         from InterfaceQT4 import compobloc
         from InterfaceQT4 import compomclist
+
+        ajoutAuParentduNoeud=0
+        self.treeParent=treeParent
         while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : 
-        #while (isinstance(self.treeParent,compobloc.Node)) :
-              self.treeParent=self.treeParent.treeParent
-              ajoutAuParentduNoeud=1
-        if ajoutAuParentduNoeud :
-           treeParent.childrenComplete.append(self)
-           self.treeParent.childrenIssusDesBlocs.append(self)
-        while (isinstance(self.treeParent,compobloc.Node)) : self.treeParent=self.treeParent.treeParent
-
-        #if isinstance(self,compobloc.Node) : 
+              self.treeParent.childrenComplete.append(self)
+              self.treeParent=self.treeParent.vraiParent
+        self.treeParent.childrenComplete.append(self)
         if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) : 
            QTreeWidgetItem.__init__(self,None,mesColonnes)
         else :
            QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes)
-           self.treeParent.childrenComplete.append(self)
 
         self.setToolTip(0,QString(self.item.get_fr()))
         self.setToolTip(1,QString(self.item.get_fr()))
@@ -252,21 +245,24 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     def build_children(self,posInsertion=10000):
         """ Construit la liste des enfants de self """
         """ Se charge de remettre les noeuds Expanded dans le meme etat """
-        #print "*********** build_children ",self.item, self.item.GetLabelText()
+        #print "*********** build_children ",self,self.item, self.item.nom
         
         listeExpanded=[]
-        for item in self.childrenComplete :
-            #print dir(item)
-            #if item.isExpanded():
+        for enfant in self.childrenComplete :
+            #if enfant.isExpanded():
             #   if self.childrenComplete.index(item) < posInsertion :
             #      listeExpanded.append(self.childrenComplete.index(item))
             #      print dir(item.item )
             #   else :
             #      listeExpanded.append( self.childrenComplete.index(item) +1)
-            self.detruit_les_noeuds_issus_de_blocs(item)
-            parent=item.treeParent
-            parent.removeChild(item)
 
+
+            p=enfant.vraiParent
+            parent=enfant.treeParent
+            parent.removeChild(enfant)
+
+            enfant.JESUISOFF=1
+        
         #print listeExpanded
         self.children = []
         self.childrenComplete = []
@@ -275,17 +271,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         for item in sublist :
             nouvelItem=item.itemNode(self,item)
             self.children.append(nouvelItem)
-            #print "         J ajoute ", nouvelItem ,nouvelItem.item.GetLabelText(),"dans" ,self.item.GetLabelText()
-            #print item
-            #if ind in listeExpanded : nouvelItem.setExpanded(1)
-            #if ind in listeExpanded : print "plie=0"
-            #else                  : print "plie=1"
-            #if ind in listeExpanded : nouvelItem.plie=0
-            #else                  : nouvelItem.plie=1
-            #ind=ind+1
 
-        #print "*********** fin build_children ",self.item, self.item.GetLabelText()
         
     def chercheNoeudCorrespondant(self,objSimp):
         sublist = self.item._GetSubList()
@@ -293,35 +279,28 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             if node.item.object==objSimp : return node
         return None
 
+
     def affichePanneau(self) :
-        #print "dans affichePanneau appel getPanel2", self.item.GetLabelText()
         if self.item.isactif(): 
            itemParent=self
-           #print self
-           #print self.getPanel2
            while not (hasattr (itemParent,'getPanel2')) : 
                 itemParent=itemParent.treeParent 
            if itemParent!=self : 
               itemParent.affichePanneau()
               return
-           #print self.getPanel2
            self.fenetre=self.getPanel2()
         else:
             from monInactifPanel import PanelInactif
             self.fenetre = PanelInactif(self,self.editor)
          
         self.editor.widgetCentraleLayout.addWidget(self.fenetre)
-        #print "widgetCentraleLayout = ", self.editor.widgetCentraleLayout
-        #print "nouvelle fenetre ", self.fenetre, " associee a ", self
 
         self.editor.anciennefenetre=self.editor.fenetreCentraleAffichee
-        #print "ancienne fenetre ", self.editor.anciennefenetre
         self.editor.fenetreCentraleAffichee=self.fenetre
         self.tree.node_selected= self
 
         if self.editor.anciennefenetre != None : 
            a=self.editor.anciennefenetre.close()
-           #print "je ferme ", self.editor.anciennefenetre
 
         if self.editor.widgetTree !=None  : index=1
         else : index=0
@@ -400,7 +379,6 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         Rend le noeud courant (self) selectionne et deselectionne
         tous les autres
         """        
-        #print "je suis sur select"
         for item in self.tree.selectedItems() :
             item.setSelected(0)
         self.setSelected( True )    
@@ -605,28 +583,22 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.update_node_texte()
 
     def onAdd(self,object):
-        #print "onAdd pour ", self.item.nom
+        if self.JESUISOFF==1 : return
         self.editor.init_modif()
         self.update_nodes()
-        #print "dans onAdd" ,self.item 
+
         # PN -- non necessaire si item=jdc
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
  
     def onSupp(self,object):
-        #print "onSupp pour ", self.item.nom
+        if self.JESUISOFF==1 : return
         self.editor.init_modif()
         self.update_nodes()
         # PN -- non necessaire si item=jdc
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
          
-    def detruit_les_noeuds_issus_de_blocs(self,bloc):
-        from InterfaceQT4 import compobloc
-        if (isinstance(bloc,compobloc.Node)) :
-           for node in bloc.childrenComplete :
-               self.detruit_les_noeuds_issus_de_blocs(node)
-               parent=node.treeParent
-               #print "je detruit " , node.item.GetLabelText()
-               parent.removeChild(node)
+
+
 
     def update_node_valid(self):
         """Cette methode remet a jour la validite du noeud (icone)
@@ -676,6 +648,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         """ Met a jour les noms des SD et valeurs des mots-cles """
         value = self.item.GetText()
         self.setText(1, value)
+        
 
     def update_node_texte_in_blue(self):
         self.setTextColor( 1,Qt.blue )
index 3a2977626b6132678e8937ce4e065b704939e943..c0d40bec68a129d5df748e7f2ff1aedafbc3a48f 100644 (file)
@@ -50,7 +50,7 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
           nouveauTitre=debutTitre
       self.editor.appliEficas.setWindowTitle(nouveauTitre)
 
-      print self.node.tree
+      #print self.node.tree
 
       self.connect(self.RBalpha,SIGNAL("clicked()"),self.afficheAlpha)
       self.connect(self.RBGroupe,SIGNAL("clicked()"),self.afficheGroupe)
@@ -64,7 +64,9 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
 
        
       self.editor.labelCommentaire.setText("")
-      if self.editor.widgetOptionnel!= None : self.editor.widgetOptionnel.close()
+      if self.editor.widgetOptionnel!= None : 
+         self.editor.widgetOptionnel.close()
+         self.editor.widgetOptionnel=None
       self.name=None
       self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.AjouteRadioButton)
 
@@ -113,6 +115,8 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
          plier=self.editor.afficheCommandesPliees
          if nodeCourrant==self.node : nouveau=self.node.append_child(self.name,'first',plier)
          else : nouveau=nodeCourrant.append_brother(self.name,plier=plier)
+      else :
+         nouveau = 0
       if nouveau == 0 : return # on n a pas insere le noeud
       nouveau.setDeplie()
       #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche()
index 2a9f3bd19eaff677213262c4b05295a5e530cef4..eb30610f88a15da9da2ca45e9242260813e229b1 100644 (file)
@@ -183,7 +183,7 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
       self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition()
       self.inhibeExpand=True
       self.node.affichePanneau()
-      print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV
+      #print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV
       QTimer.singleShot(1, self.recentre)
       if nodeAVoir != None:
         self.f=nodeAVoir.fenetre
index 049b53f519c8633efd28a6631084bff6d19aeef0..1c61c0602ca6f17b17072ea19dbc4e2669bdffb5 100644 (file)
@@ -68,4 +68,5 @@ class MonWidgetCommentaire(QWidget,Ui_WidgetCommentaire,FacultatifOuOptionnel):
       texte=str(self.commentaireLE.text())
       self.editor.init_modif()
       self.node.item.set_valeur(texte)
+      self.node.update_node()
 
index bf546eaa319e41e1391ec9ca2c885c36b8a5b20d..b02351160b5a4676b618b67edea454e4c2883daf 100644 (file)
@@ -35,6 +35,7 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
   """
   def __init__(self,editor, name = None,fl = 0):
        self.editor=editor
+       self.editor.affiche_infos("")
        QDialog.__init__(self,editor)
        self.setupUi(self)
        self.connecterSignaux()
@@ -59,14 +60,17 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
            itemAvant=self.editor.tree.selectedItems()[0]
         param=itemAvant.addParameters(True)
         param.item.set_nom(nom)
+        #PN self.val permet d entrer du texte
         param.item.set_valeur(val)
         param.update_node_texte()
+        param.update_node_valid()
         self.LBParam.addItem(QString(repr(param.item)))
 
 
   def lineEditValReturnPressed(self):
         qtVal=self.lineEditVal.text()
         valString=str(self.lineEditVal.text())
+        self.val=""
         contexte={}
         exec "from math import *" in contexte
         jdc=self.editor.jdc
@@ -83,8 +87,13 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
         monTexte="monParam="+valString
         try :
           exec monTexte in contexte
+          self.val=valString
         except :
-          self.editor.affiche_infos(tr("Valeur incorrecte"),Qt.red)
+          try :
+            monTexte="monParam='"+valString+"'"
+            self.val="'"+valString+"'"
+          except :
+            self.editor.affiche_infos(tr("Valeur incorrecte"),Qt.red)
         if self.lineEditNom.text()!="" and self.dejaExistant==False : self.CreeParametre()
 
 
index eb797065c4e9053f02c576231477ae5f65e5ee24..93a81041ac0f92a23d3b95f27f36e707f2017cf0 100644 (file)
@@ -68,7 +68,7 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
      self.cbPressed=None
      self.cb=None
      self.parentQt=parentQt
-     self.connect(self.bAjoutMC,SIGNAL("clicked()"), self.ajoutMC)
+     #self.connect(self.bAjoutMC,SIGNAL("clicked()"), self.ajoutMC)
      #print "fin init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom
 
      
index 9e247aa8e5f3c6ff2556809516624e77ec7c9398..fff4cea4cc1ed0f2a4490c7424a90c2e8e734433 100644 (file)
@@ -54,6 +54,10 @@ class MonWidgetParam(QWidget,Ui_WidgetParam,FacultatifOuOptionnel):
       self.connect(self.bApres,SIGNAL("clicked()"), self.afficheApres)
       self.connect(self.bVerifie,SIGNAL("clicked()"), self.verifiePressed)
       self.editor.affiche_infos("")
+      if self.editor.widgetOptionnel!= None :
+         self.editor.widgetOptionnel.close()
+         self.editor.widgetOptionnel=None
+
 
 
        
index 5678b5a8997ad183aa691fe433045f8338f65193..d6d4411b44b29c4f6d4cc8bc2f18c7d424b141c6 100644 (file)
@@ -34,7 +34,7 @@ from qtSaisie               import SaisieValeur
 class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        print "MonWidgetPlusieursInto", nom, self
+        #print "MonWidgetPlusieursInto", nom, self
         self.index=1
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
index 8c4a733a93ff3e904416daeb70473a1ed7041b7e..d3270f31ca13145436b90a417f7772ead41f4cdb 100644 (file)
@@ -127,7 +127,7 @@ font : 'times' 9px</string>
            <x>0</x>
            <y>0</y>
            <width>279</width>
-           <height>85</height>
+           <height>124</height>
           </rect>
          </property>
          <property name="sizePolicy">
@@ -157,73 +157,6 @@ font : 'times' 9px</string>
      </layout>
     </widget>
    </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <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="QPushButton" name="bAjoutMC">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>130</width>
-         <height>31</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>validation de la saisie</string>
-       </property>
-       <property name="styleSheet">
-        <string notr="true">background-color:rgb(104,110,149);
-color :white;
-border-radius : 12px
-</string>
-       </property>
-       <property name="text">
-        <string>&amp;Ajouter</string>
-       </property>
-       <property name="shortcut">
-        <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
-       </property>
-       <property name="autoDefault">
-        <bool>true</bool>
-       </property>
-       <property name="default">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_3">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
   </layout>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
index fd39c6ff43fab956a1f7ec75983801d25ee9e50d..8d9ca4f002b73e80dfbdaeeffd00d2b4b70e48e1 100644 (file)
Binary files a/UiQT4/eficas_en.qm and b/UiQT4/eficas_en.qm differ
index d2e1861e55198ac4fd96058ca75e21ca783d9fa4..604b00c307b0001081b579f052134781d2e67ace 100644 (file)
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="310"/>
+        <location filename="../../Ihm/I_JDC.py" line="308"/>
         <source>Impossible d&apos;ajouter la commande</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="316"/>
+        <location filename="../../Ihm/I_JDC.py" line="314"/>
         <source>Impossible d ajouter la commande</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="631"/>
+        <location filename="../../Ihm/I_JDC.py" line="629"/>
         <source>Pas implemente</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="726"/>
+        <location filename="../../Ihm/I_JDC.py" line="724"/>
         <source>Nom de concept deja defini </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="901"/>
+        <location filename="../../Ihm/I_JDC.py" line="899"/>
         <source> Nom de concept deja  defini : </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="944"/>
+        <location filename="../../Ihm/I_JDC.py" line="942"/>
         <source>Impossible de trouver le fichier correspondant a l&apos;unite </source>
         <translation type="unfinished"></translation>
     </message>
@@ -668,7 +668,7 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../convert/parseur_python.py" line="491"/>
+        <location filename="../../convert/parseur_python.py" line="499"/>
         <source>Eficas ne peut pas traiter plusieurs instructions 
                                                  sur la meme ligne : %s</source>
         <translation type="unfinished"></translation>
@@ -779,7 +779,7 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="429"/>
+        <location filename="../../InterfaceQT4/browser.py" line="430"/>
         <source>  n&apos;est pas un index valide pour append_brother</source>
         <translation type="unfinished"></translation>
     </message>
@@ -876,7 +876,7 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="344"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
         <source>&amp;Annuler</source>
         <translation type="unfinished"></translation>
     </message>
@@ -946,73 +946,73 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="603"/>
+        <location filename="../../InterfaceQT4/editor.py" line="614"/>
         <source>Copie impossible</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="577"/>
+        <location filename="../../InterfaceQT4/editor.py" line="588"/>
         <source>Veuillez selectionner un objet a copier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="582"/>
+        <location filename="../../InterfaceQT4/editor.py" line="593"/>
         <source>Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="603"/>
+        <location filename="../../InterfaceQT4/editor.py" line="614"/>
         <source>Aucun Objet n a ete copie ou coupe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="627"/>
+        <location filename="../../InterfaceQT4/editor.py" line="638"/>
         <source>Copie refusee</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="613"/>
+        <location filename="../../InterfaceQT4/editor.py" line="624"/>
         <source>Eficas n a pas reussi a copier l objet</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="627"/>
+        <location filename="../../InterfaceQT4/editor.py" line="638"/>
         <source>Copie refusee pour ce type d objet</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="639"/>
+        <location filename="../../InterfaceQT4/editor.py" line="650"/>
         <source>Deplacement refuse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="639"/>
+        <location filename="../../InterfaceQT4/editor.py" line="650"/>
         <source>Deplacement refuse entre 2 fichiers. Seule la copie est autorisee </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="674"/>
+        <location filename="../../InterfaceQT4/editor.py" line="685"/>
         <source>Copie impossible a cet endroit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="674"/>
+        <location filename="../../InterfaceQT4/editor.py" line="685"/>
         <source>Veuillez selectionner une commande, un parametre, un commentaire ou une macro</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="735"/>
+        <location filename="../../InterfaceQT4/editor.py" line="746"/>
         <source>Choix d&apos;un fichier XML</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="736"/>
+        <location filename="../../InterfaceQT4/editor.py" line="747"/>
         <source>Le fichier contient une commande MODEL
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="737"/>
+        <location filename="../../InterfaceQT4/editor.py" line="748"/>
         <source>Donnez le nom du fichier XML qui contient la description des variables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1022,135 +1022,135 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1026"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1037"/>
         <source>Erreur a la generation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1026"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1037"/>
         <source>EFICAS ne sait pas convertir ce JDC</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1030"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1041"/>
         <source>Format %s non reconnu</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1031"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1042"/>
         <source>EFICAS ne sait pas convertir le JDC selon le format </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="885"/>
+        <location filename="../../InterfaceQT4/editor.py" line="896"/>
         <source>Execution impossible </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="822"/>
+        <location filename="../../InterfaceQT4/editor.py" line="833"/>
         <source>le JDC doit etre valide pour une execution MAP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="825"/>
+        <location filename="../../InterfaceQT4/editor.py" line="836"/>
         <source>le JDC doit contenir un et un seul composant</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="861"/>
+        <location filename="../../InterfaceQT4/editor.py" line="872"/>
         <source>le JDC doit etre valide pour une execution </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="885"/>
+        <location filename="../../InterfaceQT4/editor.py" line="896"/>
         <source>Sauvegarder SVP avant l&apos;execution </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="925"/>
+        <location filename="../../InterfaceQT4/editor.py" line="936"/>
         <source>sauvegarde</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="934"/>
+        <location filename="../../InterfaceQT4/editor.py" line="945"/>
         <source>Sauvegarde du Fichier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="934"/>
+        <location filename="../../InterfaceQT4/editor.py" line="945"/>
         <source>Le fichier &lt;b&gt;%s&lt;/b&gt; existe deja.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="934"/>
+        <location filename="../../InterfaceQT4/editor.py" line="945"/>
         <source>&amp;Ecraser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1010"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1021"/>
         <source>Sauvegarde de l&apos;input impossible </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1010"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1021"/>
         <source>Un JdC valide est necessaire pour creer un .input</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="954"/>
+        <location filename="../../InterfaceQT4/editor.py" line="965"/>
         <source>Choix du composant obligatoire</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1166"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1177"/>
         <source>Choix unite %d </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1167"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1178"/>
         <source>Le fichier %s contient une commande INCLUDE 
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1168"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1179"/>
         <source>Donnez le nom du fichier correspondant a l unite logique </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1169"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1180"/>
         <source>Fichier pour unite </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1171"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1182"/>
         <source>Choix d&apos;un fichier de poursuite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1172"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1183"/>
         <source>Le fichier %s contient une commande POURSUITE
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1173"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1184"/>
         <source>Donnez le nom du fichier dont vous 
  voulez faire une poursuite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1301"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1312"/>
         <source>Fichiers Med (*.med);;Tous les Fichiers (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1304"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1315"/>
         <source>Fichier Med</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1304"/>
+        <location filename="../../InterfaceQT4/editor.py" line="1315"/>
         <source>Veuillez selectionner un fichier Med</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1225,37 +1225,37 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="176"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="182"/>
         <source>Visualisation Fichier </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="176"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="182"/>
         <source>Impossibilite d&apos;afficher le Fichier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="189"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="195"/>
         <source>Sauvegarder Fichier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="203"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="209"/>
         <source>Fichier selectionne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="212"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="218"/>
         <source>Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="258"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="264"/>
         <source>Export Med vers Fichier </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="258"/>
+        <location filename="../../InterfaceQT4/gereIcones.py" line="264"/>
         <source>Impossibilite d exporter le Fichier</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1434,7 +1434,7 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="362"/>
+        <location filename="../../InterfaceQT4/qtEficas.py" line="390"/>
         <source>Accquisition Groupe Maille</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1644,47 +1644,47 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="332"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="337"/>
         <source>Fichier Duplique</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="332"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="337"/>
         <source>Le fichier ne sera pas sauvegarde.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="262"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
         <source>Fichier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="262"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
         <source>Le fichier &lt;b&gt;%s&lt;/b&gt; est deja ouvert.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="262"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
         <source>&amp;Duplication</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="262"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
         <source>&amp;Abort</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="344"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
         <source>Fichier Modifie</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="344"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
         <source>Le fichier %s n a pas ete sauvegarde.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="344"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
         <source>&amp;Sauvegarder</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1819,7 +1819,7 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="345"/>
+        <location filename="../../InterfaceQT4/qtEficas.py" line="373"/>
         <source>Sauve Format Ligne</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1909,12 +1909,12 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="340"/>
+        <location filename="../../InterfaceQT4/qtEficas.py" line="368"/>
         <source>TraduitV10V11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="343"/>
+        <location filename="../../InterfaceQT4/qtEficas.py" line="371"/>
         <source>TraduitV11V12</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2079,7 +2079,7 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="182"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="187"/>
         <source>Creation Parametre indisponible</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2256,12 +2256,12 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="182"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="187"/>
         <source>les parametres sont lies a un jeu de donnees</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="294"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="299"/>
         <source>Fichier non encore nomme </source>
         <translation type="unfinished"></translation>
     </message>
@@ -2276,22 +2276,22 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="457"/>
+        <location filename="../../InterfaceQT4/browser.py" line="458"/>
         <source>le mot clef </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="449"/>
+        <location filename="../../InterfaceQT4/browser.py" line="450"/>
         <source> doit etre insere avant </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="458"/>
+        <location filename="../../InterfaceQT4/browser.py" line="459"/>
         <source>insertion impossible</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="457"/>
+        <location filename="../../InterfaceQT4/browser.py" line="458"/>
         <source> doit etre insere apres </source>
         <translation type="unfinished"></translation>
     </message>
@@ -2315,6 +2315,11 @@ Le fichier associe n&apos;est pas defini</source>
         <source>Date sous la forme JJ/MM/AA</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../InterfaceQT4/gereRegles.py" line="58"/>
+        <source>pas de regle de construction pour ce jeu de commandes</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ChoixCode</name>
@@ -2352,45 +2357,60 @@ Le fichier associe n&apos;est pas defini</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="79"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="85"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;Affichage&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="88"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="92"/>
         <source>affiche les commandes par ordre alphabetique</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="91"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="95"/>
         <source>Alphabetique</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="108"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="112"/>
         <source>affiche les commandes selon les thèmes</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="101"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="105"/>
         <source>Ordre de la modélisation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="111"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="115"/>
         <source>Par Groupe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="158"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="163"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;Filtre Commande&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="180"/>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="185"/>
         <source>filter commands</source>
         <translation type="unfinished"></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="248"/>
+        <source>affiche les régles de validité</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="254"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="../../UiQT4/desChoixCommandes.ui" line="271"/>
+        <source>Règles de construction</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DChoixCata</name>
@@ -2483,162 +2503,162 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="171"/>
+        <location filename="../../UiQT4/myMain.ui" line="173"/>
         <source>&amp;Aide</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="185"/>
+        <location filename="../../UiQT4/myMain.ui" line="187"/>
         <source>toolBar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="215"/>
+        <location filename="../../UiQT4/myMain.ui" line="219"/>
         <source>&amp;Nouveau</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="218"/>
+        <location filename="../../UiQT4/myMain.ui" line="222"/>
         <source>Ctrl+N</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="223"/>
+        <location filename="../../UiQT4/myMain.ui" line="227"/>
         <source>Nouvel Include</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="234"/>
+        <location filename="../../UiQT4/myMain.ui" line="245"/>
         <source>&amp;Ouvrir</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="237"/>
+        <location filename="../../UiQT4/myMain.ui" line="248"/>
         <source>Ctrl+O</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="245"/>
+        <location filename="../../UiQT4/myMain.ui" line="258"/>
         <source>Enregistrer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="261"/>
+        <location filename="../../UiQT4/myMain.ui" line="276"/>
         <source>Enregistrer sous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="269"/>
+        <location filename="../../UiQT4/myMain.ui" line="284"/>
         <source>Fermer </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="272"/>
+        <location filename="../../UiQT4/myMain.ui" line="287"/>
         <source>Ctrl+W</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="277"/>
+        <location filename="../../UiQT4/myMain.ui" line="292"/>
         <source>Fermer tout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="285"/>
+        <location filename="../../UiQT4/myMain.ui" line="302"/>
         <source>Couper</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="288"/>
+        <location filename="../../UiQT4/myMain.ui" line="305"/>
         <source>Ctrl+X</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="299"/>
+        <location filename="../../UiQT4/myMain.ui" line="318"/>
         <source>Copier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="302"/>
+        <location filename="../../UiQT4/myMain.ui" line="321"/>
         <source>Ctrl+C</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="313"/>
+        <location filename="../../UiQT4/myMain.ui" line="334"/>
         <source>Coller</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="316"/>
+        <location filename="../../UiQT4/myMain.ui" line="337"/>
         <source>Ctrl+V</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="324"/>
+        <location filename="../../UiQT4/myMain.ui" line="345"/>
         <source>Quitter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="327"/>
+        <location filename="../../UiQT4/myMain.ui" line="348"/>
         <source>Ctrl+Q</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="332"/>
+        <location filename="../../UiQT4/myMain.ui" line="353"/>
         <source>Rapport de Validation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="343"/>
+        <location filename="../../UiQT4/myMain.ui" line="364"/>
         <source>Fichier Source</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="348"/>
+        <location filename="../../UiQT4/myMain.ui" line="369"/>
         <source>Fichier Résultat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="253"/>
+        <location filename="../../UiQT4/myMain.ui" line="266"/>
         <source>Parametres Eficas</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="353"/>
+        <location filename="../../UiQT4/myMain.ui" line="374"/>
         <source>Lecteur documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="358"/>
+        <location filename="../../UiQT4/myMain.ui" line="379"/>
         <source>Eficas</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="363"/>
+        <location filename="../../UiQT4/myMain.ui" line="384"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="371"/>
+        <location filename="../../UiQT4/myMain.ui" line="394"/>
         <source>Supprimer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="393"/>
+        <location filename="../../UiQT4/myMain.ui" line="418"/>
         <source>Rechercher</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="396"/>
+        <location filename="../../UiQT4/myMain.ui" line="421"/>
         <source> Rechercher dans l&apos;arbre d&apos;etude</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="399"/>
+        <location filename="../../UiQT4/myMain.ui" line="424"/>
         <source>Ctrl+F</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="407"/>
+        <location filename="../../UiQT4/myMain.ui" line="432"/>
         <source>Replier/Deplier</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2648,82 +2668,82 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="147"/>
+        <location filename="../../UiQT4/myMain.ui" line="148"/>
         <source>&amp;Edition</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="160"/>
+        <location filename="../../UiQT4/myMain.ui" line="161"/>
         <source>&amp;JeuDeDonnées</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="226"/>
+        <location filename="../../UiQT4/myMain.ui" line="230"/>
         <source>Shift+I</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="248"/>
+        <location filename="../../UiQT4/myMain.ui" line="261"/>
         <source>Ctrl+S</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="264"/>
+        <location filename="../../UiQT4/myMain.ui" line="279"/>
         <source>Ctrl+Shift+S</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="335"/>
+        <location filename="../../UiQT4/myMain.ui" line="356"/>
         <source>Shift+V</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="376"/>
+        <location filename="../../UiQT4/myMain.ui" line="399"/>
         <source>Chercher Mot-Clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="379"/>
+        <location filename="../../UiQT4/myMain.ui" line="402"/>
         <source> Rechercher dans le catalogue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="382"/>
+        <location filename="../../UiQT4/myMain.ui" line="405"/>
         <source>Shift+F</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="410"/>
+        <location filename="../../UiQT4/myMain.ui" line="435"/>
         <source>Shift+D</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="415"/>
+        <location filename="../../UiQT4/myMain.ui" line="440"/>
         <source>Commentaire</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="418"/>
+        <location filename="../../UiQT4/myMain.ui" line="443"/>
         <source>Shift+C</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="427"/>
+        <location filename="../../UiQT4/myMain.ui" line="452"/>
         <source>Paramètres</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="430"/>
+        <location filename="../../UiQT4/myMain.ui" line="455"/>
         <source>Gestion des paramètres</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="433"/>
+        <location filename="../../UiQT4/myMain.ui" line="458"/>
         <source>Shift+P</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="438"/>
+        <location filename="../../UiQT4/myMain.ui" line="463"/>
         <source>Parametre Eficas</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2748,30 +2768,40 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="170"/>
+        <location filename="../../InterfaceQT4/qtEficas.py" line="175"/>
         <source>Run</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../UiQT4/myMain.ui" line="235"/>
+        <source>&amp;bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="../../UiQT4/myMain.ui" line="468"/>
+        <source>Régles du JdC</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>JDCEditor</name>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="775"/>
+        <location filename="../../InterfaceQT4/editor.py" line="786"/>
         <source>Save File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="775"/>
+        <location filename="../../InterfaceQT4/editor.py" line="786"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be saved.&lt;br&gt;Reason: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="920"/>
+        <location filename="../../InterfaceQT4/editor.py" line="931"/>
         <source>JDC (*.comm);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="934"/>
+        <location filename="../../InterfaceQT4/editor.py" line="945"/>
         <source>&amp;Abandonner</source>
         <translation type="unfinished">&amp;Abandonner</translation>
     </message>
@@ -2987,52 +3017,52 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="182"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="188"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="141"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="147"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Commentaire&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="176"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="182"/>
         <source>Détruit le commentaire</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="221"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="227"/>
         <source>Affiche les commandes possibles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="230"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="236"/>
         <source>&amp;Commandes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="327"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="333"/>
         <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="269"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="275"/>
         <source>Affiche le formulaire de la commande précédente</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="278"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="284"/>
         <source>&lt;&lt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="315"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="321"/>
         <source>Affiche le formulaire de la commande suivante</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="324"/>
+        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="330"/>
         <source>&gt;&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3415,7 +3445,7 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="549"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="555"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3425,37 +3455,37 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="265"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="271"/>
         <source>Remonte la ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="304"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="310"/>
         <source>Descend la ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="343"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="349"/>
         <source>supprime une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="382"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="388"/>
         <source>Ajoute une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="438"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="444"/>
         <source>Montre l&apos;ensemble des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="488"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="494"/>
         <source>Ouvre un fichier de sélection des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="543"/>
+        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="549"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3946,14 +3976,22 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>self.appliEficas</name>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="740"/>
+        <location filename="../../InterfaceQT4/editor.py" line="751"/>
         <source>Wrapper Files (*.xml);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="343"/>
+        <location filename="../../InterfaceQT4/viewManager.py" line="348"/>
         <source>Noname</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>viewRegles</name>
+    <message>
+        <location filename="../../UiQT4/desViewRegles.ui" line="14"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 </TS>
index ba49c2e806c382ec39fbe8a71daddd83390aa949..15a0b7c9886b21df98c673e5d3f92b68f70836b4 100644 (file)
@@ -24,15 +24,19 @@ from Extensions.i18n import tr
 escapedQuotesRE = re.compile(r"(\\\\|\\\"|\\\')")
 stringsAndCommentsRE =  \
       re.compile(u"(\"\"\".*?\"\"\"|'''.*?'''|\"[^\"]*\"|\'[^\']*\'|#.*?\n)", re.DOTALL)
+#stringsAndCommentsRE =  \
+#      re.compile(u"(\"\"\".*\"\"\"|'''.*'''|\"[^\"]*\"|\'[^\']*\'|#.*\n)", re.DOTALL)
 allchars = string.maketrans(u"", "")
 allcharsExceptNewline = allchars[: allchars.index('\n')]+allchars[allchars.index('\n')+1:]
-if sys.platform[0:5]=="linux" :
-   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
-elif sys.platform[0:3]=="win" :
-   allcharsExceptNewlineTranstable = dict((ord(char), u'*') for char in allcharsExceptNewline)#string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
-else :
-   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
-   print 'Plateforme non geree'
+allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+
+#if sys.platform[0:5]=="linux" :
+#   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+#elif sys.platform[0:3]=="win" :
+#   allcharsExceptNewlineTranstable = dict((ord(char), u'*') for char in allcharsExceptNewline)#
+#else :
+#   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+#   print 'Plateforme non geree'
 
 def maskStringsAndComments(src):
     """Masque tous les caracteres de src contenus dans des commentaires ou des strings multilignes (triples
@@ -40,7 +44,13 @@ def maskStringsAndComments(src):
        Le masquage est realise en remplacant les caracteres par des * 
        Attention : cette fonction doit etre utilisee sur un texte complet et pas ligne par ligne
     """
-    src = escapedQuotesRE.sub(u"**", src)
+# remplace les \\, les \" les \'  par **
+# supprime toutes les chaines ou commentaires ,y compris multiligne i
+# entre 3 ou 1 simples ou doubles quotes (ouvrantes fermantes) ou # 
+# laisse les non fermantes ou non ouvrantes
+    #src = escapedQuotesRE.sub(u"**", src)
+    # le u met le bazar dans le translate
+    src = escapedQuotesRE.sub("**", src)
     allstrings = stringsAndCommentsRE.split(src)
     # every odd element is a string or comment
     for i in xrange(1, len(allstrings), 2):
@@ -49,8 +59,6 @@ def maskStringsAndComments(src):
                             allstrings[i][3:-3].translate(allcharsExceptNewlineTranstable)+ \
                             allstrings[i][-3:]
         else:
-            test= allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)
-            #test +\
             allstrings[i] = allstrings[i][0]+ \
                             allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)+ \
                             allstrings[i][-1]
index cd70db2b3ef91de512014bd11ae948dd41a3b27c..610ebb4e8954358c5ff21d61631e16f32260e26d 100644 (file)
@@ -75,7 +75,6 @@ class TELEMACGenerator(PythonGenerator):
 #----------------------------------------------------------------------------------------
 
    def writeDefault(self,fn) :
-       print "kkkkkkkkkkkkkkkkkkkkk"
        fileDico = fn[:fn.rfind(".")] + '.py'
        f = open( str(fileDico), 'wb')
        f.write( self.texteDico )