]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
reindent InterfaceQT4
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 29 Mar 2021 08:54:06 +0000 (10:54 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 29 Mar 2021 08:54:06 +0000 (10:54 +0200)
91 files changed:
InterfaceQT4/browser.py
InterfaceQT4/compobloc.py
InterfaceQT4/compocomm.py
InterfaceQT4/compocommandecomm.py
InterfaceQT4/compofact.py
InterfaceQT4/compoformule.py
InterfaceQT4/compojdc.py
InterfaceQT4/compomacro.py
InterfaceQT4/compomclist.py
InterfaceQT4/compooper.py
InterfaceQT4/compoparam.py
InterfaceQT4/compoproc.py
InterfaceQT4/composimp.py
InterfaceQT4/configuration.py
InterfaceQT4/editor.py
InterfaceQT4/editorSsIhm.py
InterfaceQT4/eficas_goWeb.py
InterfaceQT4/feuille.py
InterfaceQT4/gereIcones.py
InterfaceQT4/gereListe.py
InterfaceQT4/gereRegles.py
InterfaceQT4/gereTraduction.py
InterfaceQT4/groupe.py
InterfaceQT4/monBoutonValide.py
InterfaceQT4/monChoixCata.py
InterfaceQT4/monChoixCode.py
InterfaceQT4/monChoixCommande.py
InterfaceQT4/monChoixLangue.py
InterfaceQT4/monFonctionPanel.py
InterfaceQT4/monGroupeOptionnel.py
InterfaceQT4/monLabelClic.py
InterfaceQT4/monLayoutBouton.py
InterfaceQT4/monRecherche.py
InterfaceQT4/monRechercheCatalogue.py
InterfaceQT4/monSelectVal.py
InterfaceQT4/monViewRegles.py
InterfaceQT4/monViewTexte.py
InterfaceQT4/monVisu.py
InterfaceQT4/monWidget4a6RadioButton.py
InterfaceQT4/monWidget4a6RadioButtonSD.py
InterfaceQT4/monWidgetBloc.py
InterfaceQT4/monWidgetCB.py
InterfaceQT4/monWidgetCBIntoSug.py
InterfaceQT4/monWidgetCBSD.py
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetCommandeDeplie1Niveau.py
InterfaceQT4/monWidgetCommentaire.py
InterfaceQT4/monWidgetCreeParam.py
InterfaceQT4/monWidgetCreeUserAssd.py
InterfaceQT4/monWidgetDate.py
InterfaceQT4/monWidgetFact.py
InterfaceQT4/monWidgetFactPlie.py
InterfaceQT4/monWidgetFormule.py
InterfaceQT4/monWidgetHeure.py
InterfaceQT4/monWidgetInactif.py
InterfaceQT4/monWidgetInfo.py
InterfaceQT4/monWidgetIntoSug.py
InterfaceQT4/monWidgetMatrice.py
InterfaceQT4/monWidgetNiveauFact.py
InterfaceQT4/monWidgetOptionnel.py
InterfaceQT4/monWidgetParam.py
InterfaceQT4/monWidgetPlusieursASSDIntoOrdonne.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetPlusieursCreeUserAssd.py
InterfaceQT4/monWidgetPlusieursPlie.py
InterfaceQT4/monWidgetPlusieursTuple.py
InterfaceQT4/monWidgetPlusieursTupleN.py
InterfaceQT4/monWidgetRadioButton.py
InterfaceQT4/monWidgetSDCOInto.py
InterfaceQT4/monWidgetSimpBase.py
InterfaceQT4/monWidgetSimpBool.py
InterfaceQT4/monWidgetSimpComplexe.py
InterfaceQT4/monWidgetSimpFichier.py
InterfaceQT4/monWidgetSimpSalome.py
InterfaceQT4/monWidgetSimpTuple.py
InterfaceQT4/monWidgetSimpTuple3.py
InterfaceQT4/monWidgetSimpTupleN.py
InterfaceQT4/monWidgetSimpTxt.py
InterfaceQT4/monWidgetTableau.py
InterfaceQT4/monWidgetUniqueSDCO.py
InterfaceQT4/monWidgetVide.py
InterfaceQT4/politiquesValidation.py
InterfaceQT4/qtEficas.py
InterfaceQT4/qtEficasSsIhm.py
InterfaceQT4/qtEficas_with_log.py
InterfaceQT4/qtSaisie.py
InterfaceQT4/readercata.py
InterfaceQT4/readercataXML.py
InterfaceQT4/typeNode.py
InterfaceQT4/viewManager.py
InterfaceQT4/viewManagerSsIhm.py

index a7b7faade18af02da69eb782f16b9fe984667499..c968aea7f24a526d2bf033ac101b3932526a4d01 100644 (file)
@@ -21,8 +21,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import re
@@ -43,29 +43,29 @@ from .monChoixCommande import MonChoixCommande
 class JDCTree( QTreeWidget,GereRegles ):
 #------------------------------------------
 
-    def __init__( self, jdc_item, QWParent):        
+    def __init__( self, jdc_item, QWParent):
     #----------------------------------------
-        self.editor       = QWParent
+        self.editor        = QWParent
         self.plie=False
         if self.editor.widgetTree !=None  :
-           QTreeWidget.__init__(self, self.editor.widgetTree ) 
-           self.editor.verticalLayout_2.addWidget(self)
-           if self.editor.enteteQTree=='complet':
-              self.headerItem().setText(0, "Commande   ")
-              self.headerItem().setText(1, "Concept/Valeur")
-           else :
-              self.headerItem().setText(0, "Commande   ")
-           self.setColumnWidth(0,200)
-           self.setExpandsOnDoubleClick(False)
-           self.setSelectionMode(3)
+            QTreeWidget.__init__(self, self.editor.widgetTree )
+            self.editor.verticalLayout_2.addWidget(self)
+            if self.editor.enteteQTree=='complet':
+                self.headerItem().setText(0, "Commande   ")
+                self.headerItem().setText(1, "Concept/Valeur")
+            else :
+                self.headerItem().setText(0, "Commande   ")
+            self.setColumnWidth(0,200)
+            self.setExpandsOnDoubleClick(False)
+            self.setSelectionMode(3)
         else :
-           QTreeWidget.__init__(self, None ) 
+            QTreeWidget.__init__(self, None )
         self.item          = jdc_item
-        self.tree          = self        
+        self.tree          = self
         self.appliEficas   = self.editor.appliEficas
         self.childrenComplete=[]
         self.racine=self.item.itemNode(self,self.item)
+
         self.itemCourant=None
 
         self.itemClicked.connect(self.handleOnItem)
@@ -76,12 +76,12 @@ class JDCTree( QTreeWidget,GereRegles ):
         self.inhibeExpand  =  True
         self.expandItem(self.racine)
         self.inhibeExpand = False
-        if self.racine.children !=[] :  
-           if self.editor.maConfiguration.afficheCommandesPliees : self.racine.children[0].plieToutEtReaffiche()
-           else                                                  : self.racine.children[0].deplieToutEtReaffiche()
-           self.racine.children[0].fenetre.donnePremier()
-        else : 
-           self.racine.affichePanneau()
+        if self.racine.children !=[] :
+            if self.editor.maConfiguration.afficheCommandesPliees : self.racine.children[0].plieToutEtReaffiche()
+            else                                                  : self.racine.children[0].deplieToutEtReaffiche()
+            self.racine.children[0].fenetre.donnePremier()
+        else :
+            self.racine.affichePanneau()
 
     def contextMenuEvent(self,event) :
     #---------------------------------
@@ -93,7 +93,7 @@ class JDCTree( QTreeWidget,GereRegles ):
     #-------------------------------------
         """
         Private slot to show the context menu of the listview.
-        
+
         @param itm the selected listview item (QListWidgetItem)
         @param coord the position of the mouse pointer (QPoint)
         Attention : existeMenu permet de savoir si un menu est associe a cet item
@@ -104,13 +104,13 @@ class JDCTree( QTreeWidget,GereRegles ):
         if item.existeMenu == 0 : return
 
         if item.menu == None:
-           item.createPopUpMenu()
+            item.createPopUpMenu()
         # PNPN reflechir a qqchose de generique pour remplacer cette fonctionnalite
         #if item.menu != None:
         #   if item.item.getNom() == "DISTRIBUTION" and item.item.isValid() :
         #      item.Graphe.setEnabled(1)
-        #   item.menu.exec_(coord)            
-            
+        #   item.menu.exec_(coord)
+
 
     def handleCollapsedItem(self,item):
     #----------------------------------
@@ -120,10 +120,10 @@ class JDCTree( QTreeWidget,GereRegles ):
         # On traite le cas de l item non selectionne
         self.itemCourant = item
         itemParent = item
-        while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent 
-        if self.tree.node_selected != itemParent : 
-           item.setExpanded(False)
-           return
+        while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent
+        if self.tree.node_selected != itemParent :
+            item.setExpanded(False)
+            return
 
         item.setPlie()
         item.plieToutEtReaffiche()
@@ -137,44 +137,44 @@ class JDCTree( QTreeWidget,GereRegles ):
         if self.inhibeExpand == True : return
 
         self.itemCourant  = item
-        self.inhibeExpand = True 
+        self.inhibeExpand = True
         itemParent = item
-        while not (hasattr (itemParent,'getPanel')) : 
-           if itemParent.plie==True : itemParent.setDeplie()
-           itemParent=itemParent.treeParent 
-        if self.tree.node_selected != itemParent : 
-           item.setExpanded(True)
-           self.inhibeExpand = False 
-           return
+        while not (hasattr (itemParent,'getPanel')) :
+            if itemParent.plie==True : itemParent.setDeplie()
+            itemParent=itemParent.treeParent
+        if self.tree.node_selected != itemParent :
+            item.setExpanded(True)
+            self.inhibeExpand = False
+            return
         item.deplieToutEtReaffiche()
-        self.inhibeExpand = False 
+        self.inhibeExpand = False
 
 
     def handleOnItem(self,item,int):
     #----------------------------------
         #print ("je passe dans handleOnItem pour ",self, item.item.nom, item, item.item, item.item.getLabelText())
-        
+
         from InterfaceQT4 import composimp
-        self.inhibeExpand = True 
+        self.inhibeExpand = True
         self.itemCourant  = item
         itemParent        = item
 
-        while not (hasattr (itemParent,'getPanel')) : 
-           if itemParent.plie==True : itemParent.setDeplie()
-           itemAvant=itemParent
-           itemParent=itemParent.treeParent 
+        while not (hasattr (itemParent,'getPanel')) :
+            if itemParent.plie==True : itemParent.setDeplie()
+            itemAvant=itemParent
+            itemParent=itemParent.treeParent
 
-        if itemParent.fenetre != self.editor.fenetreCentraleAffichee : 
-           estUneFeuille=(isinstance(item,composimp.Node))
-           # il faut afficher le parent
-           # Attention - Specification particuliere pour MT qui permet de nn afficher qu 1 niveau
-           # le catalogue contient cette indication dans fenetreIhm
-           if estUneFeuille and itemParent.fenetreIhm=='deplie1Niveau' : 
-              itemAvant.afficheCeNiveau()
-              return
-           if estUneFeuille                        : itemParent.affichePanneau()
-           elif self.editor.maConfiguration.afficheCommandesPliees : itemParent.plieToutEtReafficheSaufItem(item)
-           else                                    : itemParent.affichePanneau()
+        if itemParent.fenetre != self.editor.fenetreCentraleAffichee :
+            estUneFeuille=(isinstance(item,composimp.Node))
+            # il faut afficher le parent
+            # Attention - Specification particuliere pour MT qui permet de nn afficher qu 1 niveau
+            # le catalogue contient cette indication dans fenetreIhm
+            if estUneFeuille and itemParent.fenetreIhm=='deplie1Niveau' :
+                itemAvant.afficheCeNiveau()
+                return
+            if estUneFeuille                        : itemParent.affichePanneau()
+            elif self.editor.maConfiguration.afficheCommandesPliees : itemParent.plieToutEtReafficheSaufItem(item)
+            else                                    : itemParent.affichePanneau()
 
 
         elif (isinstance(item,composimp.Node)) and item.fenetre : item.fenetre.rendVisible()
@@ -182,17 +182,17 @@ class JDCTree( QTreeWidget,GereRegles ):
 
         # aide
         try :
-           fr = item.item.getFr()
-           chaineDecoupee= fr.split('\n')
-           if len(chaineDecoupee) > 3 :
-              txt='\n'.join(chaineDecoupee[0:2])+'...\nfull help : double clicked on validity chip of '+ str(item.item.nom)+ ' in central widget'
-           else : txt=fr
-           if self.editor: self.editor.afficheCommentaire(str(txt))
+            fr = item.item.getFr()
+            chaineDecoupee= fr.split('\n')
+            if len(chaineDecoupee) > 3 :
+                txt='\n'.join(chaineDecoupee[0:2])+'...\nfull help : double clicked on validity chip of '+ str(item.item.nom)+ ' in central widget'
+            else : txt=fr
+            if self.editor: self.editor.afficheCommentaire(str(txt))
         except:
             pass
 
         item.select()
-        self.inhibeExpand = False 
+        self.inhibeExpand = False
 
 
     def choisitPremier(self,name):
@@ -200,11 +200,11 @@ class JDCTree( QTreeWidget,GereRegles ):
         self.editor.layoutJDCCHOIX.removeWidget(self.racine.fenetre)
         self.racine.fenetre.close()
         new_node=self.racine.appendBrother(name,'after')
+
 # type de noeud
 COMMENT     = "COMMENTAIRE"
 PARAMETERS  = "PARAMETRE"
+
 #------------------------------------------
 class JDCNode(QTreeWidgetItem,GereRegles):
 #------------------------------------------
@@ -218,13 +218,13 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.vraiParent  = treeParent
         self.treeParent  = treeParent
         self.tree        = self.treeParent.tree
-        self.editor     = self.treeParent.editor
+        self.editor      = self.treeParent.editor
         self.appliEficas = treeParent.appliEficas
         self.JESUISOFF   = 0
         self.firstAffiche = True
         self.childrenComplete=[]
 
-                        
+
         from InterfaceQT4 import compocomm
         from InterfaceQT4 import compoparam
         from InterfaceQT4 import composimp
@@ -233,27 +233,27 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         else                                                  : name = tr(item.getLabelText()[0])
         if item.nom != tr(item.nom)                           : name = str(tr(item.nom)+" :")
         value = tr(str(item.getText() ) )
-       
+
         # si specialisation de la fenetre
         if self.item.object.definition == None : self.fenetreIhm = None
-           # Cas des listes de mots_clefs 
+            # Cas des listes de mots_clefs
         else : self.fenetreIhm = self.item.object.definition.fenetreIhm
+
         if self.editor.enteteQTree=='complet':mesColonnes=(name,value)
         else : mesColonnes=(name,)
 
         if self.treeParent.plie==True :
-           self.plie                   = True
-           self.appartientAUnNoeudPlie = True
-           if self.treeParent.item.isMCList() : self.appartientAUnNoeudPlie =  self.treeParent.appartientAUnNoeudPlie
+            self.plie                   = True
+            self.appartientAUnNoeudPlie = True
+            if self.treeParent.item.isMCList() : self.appartientAUnNoeudPlie =  self.treeParent.appartientAUnNoeudPlie
         else :
-           self.plie                   = False
-           self.appartientAUnNoeudPlie = False
+            self.plie                   = False
+            self.appartientAUnNoeudPlie = False
 
         #if item.nom == "POUTRE" :print "creation d'un noeud : ", item, " ",item.nom,"", self.treeParent, self.appartientAUnNoeudPlie , self.plie
 
         if ancien and itemExpand     : self.plie = False
-        if ancien and not itemExpand : self.plie = True 
+        if ancien and not itemExpand : self.plie = True
         if (isinstance(self.item,composimp.SIMPTreeItem)) : self.plie=False
 
         from InterfaceQT4 import compobloc
@@ -261,17 +261,17 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         ajoutAuParentduNoeud=0
         self.treeParent=treeParent
-        while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : 
-           self.treeParent.childrenComplete.append(self)
-           self.treeParent=self.treeParent.vraiParent
+        while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) :
+            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()) or ( hasattr(self.item.parent,'inhibeValidator') and isinstance(self,compomclist.Node) and self.item.parent.inhibeValidator)) : 
+        if (isinstance(self,compobloc.Node) or (isinstance(self,compomclist.Node) and self.item.isMCList()) or ( hasattr(self.item.parent,'inhibeValidator') and isinstance(self,compomclist.Node) and self.item.parent.inhibeValidator)) :
         # Le dernier or ne sert que lorsqu'on est en train de creer une liste par les validator
-           QTreeWidgetItem.__init__(self,None,mesColonnes)
+            QTreeWidgetItem.__init__(self,None,mesColonnes)
         else :
-           QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes)
+            QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes)
 
         self.setToolTip(0,self.item.getFr())
         self.setToolTip(1,self.item.getFr())
@@ -295,11 +295,11 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.state=""
         self.fenetre=None
         try :
-           if self.item.getObject().isBLOC() : 
-              self.setExpanded(True) 
-              self.plie=False
+            if self.item.getObject().isBLOC() :
+                self.setExpanded(True)
+                self.plie=False
         except :
-           pass
+            pass
 
 
     def buildChildren(self,posInsertion=10000):
@@ -308,41 +308,41 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         """ Se charge de remettre les noeuds Expanded dans le meme etat """
         #print ("*********** buildChildren ",self,self.item, self.item.nom)
         #print (poum)
-        
+
         self.listeItemExpanded=[]
         self.listeItemPlie=[]
 
         for enfant in self.childrenComplete :
-           if enfant.plie : self.listeItemPlie.append(enfant.item)
-           else : self.listeItemExpanded.append(enfant.item)
+            if enfant.plie : self.listeItemPlie.append(enfant.item)
+            else : self.listeItemExpanded.append(enfant.item)
 
         for enfant in self.childrenComplete :
-           parent = enfant.treeParent
-           parent.removeChild(enfant)
-           enfant.JESUISOFF=1
-         
-        
+            parent = enfant.treeParent
+            parent.removeChild(enfant)
+            enfant.JESUISOFF=1
+
+
         self.children = []
         self.childrenComplete = []
         sublist = self.item._getSubList()
         ind=0
-        
+
         for item in sublist :
-           itemExpand=False
-           ancien=False
-           if item in self.listeItemExpanded : itemExpand=True;  ancien=True
-           if item in self.listeItemPlie     : itemExpand=False; ancien=True
-           nouvelItem=item.itemNode(self,item,itemExpand,ancien)
-           self.children.append(nouvelItem)
+            itemExpand=False
+            ancien=False
+            if item in self.listeItemExpanded : itemExpand=True;  ancien=True
+            if item in self.listeItemPlie     : itemExpand=False; ancien=True
+            nouvelItem=item.itemNode(self,item,itemExpand,ancien)
+            self.children.append(nouvelItem)
 
         #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children)
 
-        
+
     def chercheNoeudCorrespondant(self,objSimp):
     #-------------------------------------------
         sublist = self.item._getSubList()
         for node in self.childrenComplete:
-           if node.item.object==objSimp : return node
+            if node.item.object==objSimp : return node
         return None
 
 
@@ -350,71 +350,71 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     #-------------------------
         #print ('afficheCeNiveau pour ', self.item.nom, self.item.getLabelText())
         for indiceWidget in range(self.editor.widgetCentraleLayout.count()):
-           widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget)
-           self.editor.widgetCentraleLayout.removeItem(widget)
+            widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget)
+            self.editor.widgetCentraleLayout.removeItem(widget)
         if self.editor.fenetreCentraleAffichee != None :
-           self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
-           self.editor.fenetreCentraleAffichee.setParent(None)
-           self.editor.fenetreCentraleAffichee.close()
-           self.editor.fenetreCentraleAffichee.deleteLater()
+            self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
+            self.editor.fenetreCentraleAffichee.setParent(None)
+            self.editor.fenetreCentraleAffichee.close()
+            self.editor.fenetreCentraleAffichee.deleteLater()
 
         from monWidgetNiveauFact import MonWidgetNiveauFact, MonWidgetNiveauFactTableau
         maDefinition = self.item.get_definition()
         monObjet     = self.item.object
         if maDefinition.fenetreIhm=='Tableau' : self.maFenetreCadre=MonWidgetNiveauFactTableau(self,self.editor,maDefinition,monObjet)
         else : self.maFenetreCadre=MonWidgetNiveauFact(self,self.editor,maDefinition,monObjet)
-        
+
         self.fenetre = self.maFenetreCadre
         self.editor.widgetCentraleLayout.addWidget(self.maFenetreCadre)
         self.editor.fenetreCentraleAffichee=self.maFenetreCadre
         self.select()
         #print ('fin afficheCeNiveau pour ', self.item.nom)
-        
-   
+
+
     def getPanelModifie(self):
     #-------------------------
-       
+
         if self.fenetreIhm == None : return None
         if self.fenetreIhm =='deplie1Niveau':
-           from InterfaceQT4.monWidgetCommandeDeplie1Niveau import MonWidgetCommandeDeplie1Niveau
-           return MonWidgetCommandeDeplie1Niveau (self,self.editor ,self.item.object)
+            from InterfaceQT4.monWidgetCommandeDeplie1Niveau import MonWidgetCommandeDeplie1Niveau
+            return MonWidgetCommandeDeplie1Niveau (self,self.editor ,self.item.object)
         return None
-        
+
 
     def affichePanneau(self) :
     #-------------------------
         #print ('_________________ds affichePanneau pour', self.item.nom)
         # pour l instant pas d inactif
-        if not(self.item.isActif()) : 
-           from .monWidgetInactif import MonWidgetInactif
-           self.fenetre = MonWidgetInactif(self,self.editor)
+        if not(self.item.isActif()) :
+            from .monWidgetInactif import MonWidgetInactif
+            self.fenetre = MonWidgetInactif(self,self.editor)
         else:
-           itemParent=self
-           while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent 
-           if itemParent != self : 
-              #print ('j appelle affichePanneau pour ', itemParent.item.nom , 'par', self.item.nom)
-              itemParent.affichePanneau()
-              #print ('fin _________________ds affichePanneau pour', self.item.nom)
-              return
-
-           self.fenetre = self.getPanelModifie()
-           if self.fenetre == None : self.fenetre=self.getPanel()
-           self.editor.restoreSplitterSizes()
-         
+            itemParent=self
+            while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent
+            if itemParent != self :
+                #print ('j appelle affichePanneau pour ', itemParent.item.nom , 'par', self.item.nom)
+                itemParent.affichePanneau()
+                #print ('fin _________________ds affichePanneau pour', self.item.nom)
+                return
+
+            self.fenetre = self.getPanelModifie()
+            if self.fenetre == None : self.fenetre=self.getPanel()
+            self.editor.restoreSplitterSizes()
+
         for indiceWidget in range(self.editor.widgetCentraleLayout.count()):
-           widget = self.editor.widgetCentraleLayout.itemAt(indiceWidget)
-           self.editor.widgetCentraleLayout.removeItem(widget)
+            widget = self.editor.widgetCentraleLayout.itemAt(indiceWidget)
+            self.editor.widgetCentraleLayout.removeItem(widget)
 
         # ceinture et bretelle
         #print 'old fenetre = ',self.editor.fenetreCentraleAffichee
-        if self.editor.fenetreCentraleAffichee != None : 
-           try :
-              self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
-              self.editor.fenetreCentraleAffichee.setParent(None)
-              self.editor.fenetreCentraleAffichee.close()
-              self.editor.fenetreCentraleAffichee.deleteLater()
-           except :
-              pass
+        if self.editor.fenetreCentraleAffichee != None :
+            try :
+                self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
+                self.editor.fenetreCentraleAffichee.setParent(None)
+                self.editor.fenetreCentraleAffichee.close()
+                self.editor.fenetreCentraleAffichee.deleteLater()
+            except :
+                pass
 
         self.editor.widgetCentraleLayout.addWidget(self.fenetre)
         #print ("j ajoute ", self.fenetre, self.fenetre.node.item.nom)
@@ -422,12 +422,12 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.tree.node_selected= self
 
         if self.editor.first :
-           if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
+            if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
         self.tree.inhibeExpand=True
         self.tree.expandItem(self)
         self.tree.inhibeExpand=False
         #print( '_________________fin affichePanneau pour', self.item.nom)
-          
+
 
     def createPopUpMenu(self):
     #-------------------------
@@ -442,32 +442,32 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         # On traite par une exception le cas ou l'utilisateur final cherche a desactiver
         # (commentariser) un commentaire.
         try :
-           pos=self.treeParent.children.index(self)
-           commande_comment = self.item.getObjetCommentarise()
-           # On signale a l editeur du panel (le JDCDisplay) une modification
-           self.editor.initModif()
-           self.treeParent.buildChildren()
-           self.treeParent.children[pos].select()
-           self.treeParent.children[pos].affichePanneau()
+            pos=self.treeParent.children.index(self)
+            commande_comment = self.item.getObjetCommentarise()
+            # On signale a l editeur du panel (le JDCDisplay) une modification
+            self.editor.initModif()
+            self.treeParent.buildChildren()
+            self.treeParent.children[pos].select()
+            self.treeParent.children[pos].affichePanneau()
         except Exception as e:
-           traceback.print_exc()
-           QMessageBox.critical( self.editor, "TOO BAD",str(e))
-        
+            traceback.print_exc()
+            QMessageBox.critical( self.editor, "TOO BAD",str(e))
+
     def unCommentIt(self):
     #-------------------------
         """
         Realise la decommentarisation de self
         """
         try :
-           pos=self.treeParent.children.index(self)
-           commande,nom = self.item.unComment()
-           self.editor.initModif()
-           self.treeParent.buildChildren()
-           self.treeParent.children[pos].select()
-           self.treeParent.children[pos].affichePanneau()
+            pos=self.treeParent.children.index(self)
+            commande,nom = self.item.unComment()
+            self.editor.initModif()
+            self.treeParent.buildChildren()
+            self.treeParent.children[pos].select()
+            self.treeParent.children[pos].affichePanneau()
         except Exception as e:
-           QMessageBox.critical( self.editor, "Erreur !",str(e))
-        
+            QMessageBox.critical( self.editor, "Erreur !",str(e))
+
     def addComment( self, after=True ):
     #-----------------------------------
         """
@@ -475,11 +475,11 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         """
         self.editor.initModif()
         if after:
-           pos = 'after'
+            pos = 'after'
         else:
-           pos = 'before'
+            pos = 'before'
         return self.appendBrother( COMMENT, pos )
-                
+
     def addParameters( self, after=True ):
     #-------------------------------------
         """
@@ -490,19 +490,19 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         else: pos = 'before'
         child=self.appendBrother( PARAMETERS, pos )
         return  child
-    
-    
+
+
     def select( self ):
     #------------------
         """
         Rend le noeud courant (self) selectionne et deselectionne
         tous les autres
-        """        
+        """
         #print "select pour", self.item.nom
         for item in self.tree.selectedItems() :
-           item.setSelected(0)
-        self.tree.setCurrentItem( self )    
-                               
+            item.setSelected(0)
+        self.tree.setCurrentItem( self )
+
     #------------------------------------------------------------------
     # Methodes de creation et destruction de noeuds
     #------------------------------------------------------------------
@@ -511,27 +511,27 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     #----------------------------------------------------
         """
         Permet d'ajouter un objet frere a l'objet associe au noeud self
-        par defaut on l'ajoute immediatement apres 
+        par defaut on l'ajoute immediatement apres
         Methode externe
         """
         self.editor.initModif()
 
         from InterfaceQT4 import compojdc
         if (isinstance(self.treeParent, compojdc.Node)) and not self.verifiePosition(name,pos)  : return 0
-        
+
         if self.treeParent != self.vraiParent :
-           index = self.vraiParent.children.index(self)
-           if   pos == 'before' : index = index
-           elif pos == 'after'  : index = index +1
-           return self.vraiParent.appendChild(name,pos=index,plier=plier)
+            index = self.vraiParent.children.index(self)
+            if   pos == 'before' : index = index
+            elif pos == 'after'  : index = index +1
+            return self.vraiParent.appendChild(name,pos=index,plier=plier)
         else :
-           index = self.treeParent.children.index(self)
-           if   pos == 'before': index = index
-           elif pos == 'after' : index = index +1
-           else:
-              print(pos, tr("  n'est pas un index valide pour appendBrother"))
-              return 0
-           return self.treeParent.appendChild(name,pos=index,plier=plier)
+            index = self.treeParent.children.index(self)
+            if   pos == 'before': index = index
+            elif pos == 'after' : index = index +1
+            else:
+                print(pos, tr("  n'est pas un index valide pour appendBrother"))
+                return 0
+            return self.treeParent.appendChild(name,pos=index,plier=plier)
 
     def verifiePosition(self,name,pos,aLaRacine=False):
     #----------------------------------------------------
@@ -546,21 +546,21 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         if pos=="after" : indexOu = indexOu+1
         for e in etapes[:indexOu] :
-           nom=e.nom
-           if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
-           indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
-           if indexEtape > indexName :
-              comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom
-              QMessageBox.information( None,tr('insertion impossible'),comment, )
-              return False
+            nom=e.nom
+            if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
+            indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
+            if indexEtape > indexName :
+                comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom
+                QMessageBox.information( None,tr('insertion impossible'),comment, )
+                return False
         for e in etapes[indexOu:] :
-           nom=e.nom
-           if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
-           indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
-           if indexEtape < indexName :
-              comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom
-              QMessageBox.information( None,tr('insertion impossible'),comment, )
-              return False
+            nom=e.nom
+            if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
+            indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
+            if indexEtape < indexName :
+                comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom
+                QMessageBox.information( None,tr('insertion impossible'),comment, )
+                return False
         return True
 
     def appendChild(self,name,pos=None,plier=False):
@@ -575,7 +575,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #import traceback
         #traceback.print_stack()
 
-         
+
         self.editor.initModif()
         if   pos == 'first'       : index = 0
         elif pos == 'last'        : index = len(self.children)
@@ -586,8 +586,8 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         # si on essaye d inserer a la racine
         if (isinstance(self.treeParent,JDCTree) and index==0) :
-           verifiePosition=self.verifiePosition(name,'first',aLaRacine=True)
-           if not verifiePosition : return 0
+            verifiePosition=self.verifiePosition(name,'first',aLaRacine=True)
+            if not verifiePosition : return 0
 
         self.tree.inhibeExpand = True
         obj = self.item.addItem(name,index) # emet le signal 'add'
@@ -596,14 +596,14 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         try :
         #if 1 :
-           child = self.children[index]
-           if plier == True : child.setPlie()
-           else             : child.setDeplie() 
+            child = self.children[index]
+            if plier == True : child.setPlie()
+            else             : child.setDeplie()
         except :
-           child=self.children[index]
+            child=self.children[index]
 
-        try : 
-           if len(obj) > 1 : self.buildChildren()
+        try :
+            if len(obj) > 1 : self.buildChildren()
         except : pass
 
         self.tree.inhibeExpand=False
@@ -613,23 +613,23 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     def deplace(self):
     #-----------------
         self.editor.initModif()
-        index = self.treeParent.children.index(self) - 1 
+        index = self.treeParent.children.index(self) - 1
         if index < 0 : index =0
         ret=self.treeParent.item.deplaceEntite(self.item.getObject())
 
     def delete(self):
     #----------------
-        """ 
+        """
             Methode externe pour la destruction de l'objet associe au noeud
         """
         self.editor.initModif()
-        index = self.vraiParent.children.index(self) - 1 
+        index = self.vraiParent.children.index(self) - 1
         if index < 0 : index =0
 
         recalcule=0
         if self.item.nom == "VARIABLE" :
-           recalcule=1
-           jdc=self.item.jdc
+            recalcule=1
+            jdc=self.item.jdc
 
         ret,commentaire=self.vraiParent.item.suppItem(self.item)
         if ret==0 : self.editor.afficheInfos(commentaire,Qt.red)
@@ -640,49 +640,49 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         if recalcule : jdc.recalculeEtatCorrelation()
         if ret==0 :
-           if self.treeParent.childrenComplete :
-              notdeleted=self.treeParent.childrenComplete[index+1]
-              notdeleted.select()
+            if self.treeParent.childrenComplete :
+                notdeleted=self.treeParent.childrenComplete[index+1]
+                notdeleted.select()
         else :
-           toselect.select()
+            toselect.select()
 
         from InterfaceQT4 import compojdc
         # cas ou on detruit dans l arbre sans affichage
-        if isinstance(self.treeParent,compojdc.Node) : 
-           toselect.affichePanneau()
+        if isinstance(self.treeParent,compojdc.Node) :
+            toselect.affichePanneau()
         else :
-           if self.treeParent.fenetre== None : return
-           #print "J appelle reaffiche de browser apres delete"
-           self.treeParent.fenetre.reaffiche(toselect)
+            if self.treeParent.fenetre== None : return
+            #print "J appelle reaffiche de browser apres delete"
+            self.treeParent.fenetre.reaffiche(toselect)
 
     def deleteMultiple(self,liste=()):
     #--------------------------------
-        """ 
+        """
             Methode externe pour la destruction d une liste de noeud
         """
-        from InterfaceQT4 import compojdc 
+        from InterfaceQT4 import compojdc
         self.editor.initModif()
         index=9999
         recalcule=0
         jdc=self.treeParent
         parentPosition=jdc
         while not(isinstance(jdc,compojdc.Node)):
-           jdc=jdc.treeParent
+            jdc=jdc.treeParent
         for noeud in liste :
-           if not( isinstance(noeud.treeParent, compojdc.Node)): continue
-           if noeud.item.nom == "VARIABLE" : recalcule=1
-           if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud)
+            if not( isinstance(noeud.treeParent, compojdc.Node)): continue
+            if noeud.item.nom == "VARIABLE" : recalcule=1
+            if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud)
         if index < 0 : index =0
 
         # Cas ou on detruit dans une ETape
-        if index == 9999 : 
-           parentPosition=self.treeParent
-           while not(isinstance(parentPosition, compojdc.Node)):
-              index=parentPosition.treeParent.children.index(parentPosition)
-              parentPosition=parentPosition.treeParent
+        if index == 9999 :
+            parentPosition=self.treeParent
+            while not(isinstance(parentPosition, compojdc.Node)):
+                index=parentPosition.treeParent.children.index(parentPosition)
+                parentPosition=parentPosition.treeParent
 
         for noeud in liste:
-           noeud.treeParent.item.suppItem(noeud.item)
+            noeud.treeParent.item.suppItem(noeud.item)
 
         jdc.buildChildren()
         if recalcule : jdc.recalculeEtatCorrelation()
@@ -690,16 +690,16 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         except : toselect=jdc
         toselect.select()
         toselect.affichePanneau()
-#        
+#
 #    ------------------------------------------------------------------
 
-    def onValid(self):        
+    def onValid(self):
     #-----------------
         if self.JESUISOFF==1 : return
 
-        if hasattr(self,'fenetre') and self.fenetre: 
-           try : self.fenetre.setValide()
-           except : pass
+        if hasattr(self,'fenetre') and self.fenetre:
+            try : self.fenetre.setValide()
+            except : pass
 
         # PNPN  lignes suivantes a repenser
         #if (self.item.nom == "VARIABLE" or self.item.nom == "DISTRIBUTION") and self.item.isValid():
@@ -707,7 +707,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #print (hasattr(self.item,'forceRecalcul'))
         #if hasattr(self.item,'forceRecalcul') : self.forceRecalculChildren(self.item.forceRecalcul)
         self.editor.initModif()
-        
+
         self.updateNodeValid()
         self.updateNodeLabel()
         self.updateNodeTexte()
@@ -720,7 +720,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.editor.initModif()
         self.updateNodes()
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
+
     def onSupp(self,object):
     #-----------------------
         #print ("onSup pour ", self.item.nom, object)
@@ -730,7 +730,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.editor.initModif()
         self.updateNodes()
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
-         
+
     def onRedessine(self):
     #---------------------
         #print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!je passe dans onRedessine pour', self.item.nom)
@@ -757,34 +757,34 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         # PNPN a reflechir
         if self.item.nom != tr(self.item.nom) : labeltext = str(tr(self.item.nom)+" :")
         self.setText(0, tr(labeltext))
-    
+
     def updateNodeLabelInBlack(self):
     #-------------------------------
-        if hasattr(self.appliEficas,'noeudColore'): 
-           self.appliEficas.noeudColore.setForeground(0,Qt.black)
-           self.appliEficas.noeudColore.updateNodeLabel
-    
+        if hasattr(self.appliEficas,'noeudColore'):
+            self.appliEficas.noeudColore.setForeground(0,Qt.black)
+            self.appliEficas.noeudColore.updateNodeLabel
+
     def updateNodeLabelInBlue(self):
     #-------------------------------
         if hasattr(self.appliEficas,'noeudColore'): self.appliEficas.noeudColore.setForeground(0,Qt.black)
         self.setForeground(0,Qt.blue)
         labeltext,fonte,couleur = self.item.getLabelText()
         if self.item.nom != tr(self.item.nom) : labeltext = str(tr(self.item.nom)+" :")
-        self.setText(0, labeltext)        
+        self.setText(0, labeltext)
         self.appliEficas.noeudColore=self
 
     def updatePlusieursNodeLabelInBlue(self,liste):
     #----------------------------------------------
         if hasattr(self.appliEficas,'listeNoeudsColores'):
-           for noeud in self.appliEficas.listeNoeudsColores:
-              noeud.setTextColor( 0,Qt.black)
-              noeud.updateNodeLabel()
+            for noeud in self.appliEficas.listeNoeudsColores:
+                noeud.setTextColor( 0,Qt.black)
+                noeud.updateNodeLabel()
         self.appliEficas.listeNoeudsColores=[]
         for noeud in liste :
-           noeud.setTextColor( 0,Qt.blue )
-           labeltext,fonte,couleur = noeud.item.getLabelText()
-           noeud.setText(0, labeltext)        
-           self.appliEficas.listeNoeudsColores.append(noeud)
+            noeud.setTextColor( 0,Qt.blue )
+            labeltext,fonte,couleur = noeud.item.getLabelText()
+            noeud.setText(0, labeltext)
+            self.appliEficas.listeNoeudsColores.append(noeud)
 
     def updateNodeTexteInBlack(self):
     #--------------------------------
@@ -798,7 +798,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 updateNodeTexteInBlue(self):
     #--------------------------------
@@ -820,29 +820,29 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.updateNodeValid()
         try   : self.treeParent.updateValid()
         except: pass
-            
+
     def updateTexte(self):
     #----------------------
         """ Met a jour les noms des SD et valeurs des mots-cles """
         #print "NODE updateTexte", self.item.getLabelText()
         self.updateNodeTexte()
         if self.isExpanded() :
-           for child in self.children:
-              if child.isHidden() == false : child.updateTexte()
+            for child in self.children:
+                if child.isHidden() == false : child.updateTexte()
 
 
     def forceRecalculChildren(self,niveau):
     #--------------------------------------
-        if self.state == 'recalcule' : 
-           self.state = ""
-           return
+        if self.state == 'recalcule' :
+            self.state = ""
+            return
         self.state='recalcule'
         if hasattr(self.item,'object'):
-           self.item.object.state="modified"
+            self.item.object.state="modified"
         for child in self.children:
-           if niveau > 0 : child.forceRecalculChildren(niveau - 1)
-              
-        
+            if niveau > 0 : child.forceRecalculChildren(niveau - 1)
+
+
 
     def doPaste(self,node_selected,pos='after'):
     #--------------------------------------------
@@ -865,9 +865,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         child=None
         try :
         #if 1 :
-           child = self.appendBrother(objet_a_copier,pos)
+            child = self.appendBrother(objet_a_copier,pos)
         except :
-           pass
+            pass
         return child
 
     def doPastePremier(self,objet_a_copier):
@@ -884,17 +884,17 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.inhibeExpand=True
         from InterfaceQT4 import compojdc
         if (isinstance(self, compojdc.Node)) :
-           self.affichePanneau()
-           self.inhibeExpand=False
-           return 
+            self.affichePanneau()
+            self.inhibeExpand=False
+            return
         self.editor.deplier = False
         for item in self.children :
-           # il ne faut pas plier les blocs 
-           from InterfaceQT4 import compobloc
-           if (isinstance(item,compobloc.Node)) : continue
-           item.setPlie()
-           if item==itemADeplier : 
-              itemADeplier.setDeplie()
+            # il ne faut pas plier les blocs
+            from InterfaceQT4 import compobloc
+            if (isinstance(item,compobloc.Node)) : continue
+            item.setPlie()
+            if item==itemADeplier :
+                itemADeplier.setDeplie()
         self.affichePanneau()
         self.inhibeExpand=False
 
@@ -902,14 +902,14 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     #-----------------------------
         #print ('plieToutEtReaffiche', self.item.getNom())
         from InterfaceQT4 import compojdc
-        if (isinstance(self, compojdc.Node)) : self.affichePanneau(); return 
+        if (isinstance(self, compojdc.Node)) : self.affichePanneau(); return
         self.inhibeExpand=True
         self.editor.deplier = False
         for item in self.children :
-           # il ne faut pas plier les blocs 
-           from InterfaceQT4 import compobloc
-           if (isinstance(item,compobloc.Node)) : continue
-           item.setPlie()
+            # il ne faut pas plier les blocs
+            from InterfaceQT4 import compobloc
+            if (isinstance(item,compobloc.Node)) : continue
+            item.setPlie()
         self.affichePanneau()
         #print ("fin plieToutEtReaffiche", self.item.getNom())
 
@@ -917,7 +917,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     #-----------------------------
         self.editor.deplier = True
         for item in self.children :
-           item.setDeplie()
+            item.setDeplie()
         self.affichePanneau()
 
     def setPlie(self):
@@ -925,8 +925,8 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #print "je mets inhibeExpand a true dans setPlie"
         #print ("je suis dans plieTout", self.item.getNom())
         from . import compojdc
-        if self.fenetre == self.editor.fenetreCentraleAffichee  and isinstance(self.treeParent,compojdc.Node): 
-           return
+        if self.fenetre == self.editor.fenetreCentraleAffichee  and isinstance(self.treeParent,compojdc.Node):
+            return
         self.tree.inhibeExpand=True
         self.tree.collapseItem(self)
         self.setPlieChildren()
@@ -945,26 +945,26 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         from InterfaceQT4 import composimp
         if isinstance(self,composimp.Node) : return
         for c in self.children :
-           c.setPlieChildren()
-           #print "dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0]
-           c.appartientAUnNoeudPlie=True
-           c.plie=True
-           #print "dans setPlieChildren plie", c.item.nom
-           #  01/2018 PNPN : boucle sur MT __ La ligne suivante ne me semble pas necessaire
-           #if not (isinstance(c,composimp.Node)) :c.setExpanded(False)
+            c.setPlieChildren()
+            #print "dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0]
+            c.appartientAUnNoeudPlie=True
+            c.plie=True
+            #print "dans setPlieChildren plie", c.item.nom
+            #  01/2018 PNPN : boucle sur MT __ La ligne suivante ne me semble pas necessaire
+            #if not (isinstance(c,composimp.Node)) :c.setExpanded(False)
 
         # Pour les blocs et les motcles list
         # on affiche un niveau de plus
         from InterfaceQT4 import compobloc
         from InterfaceQT4 import compomclist
-        if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) : 
-           niveauPere=self.treeParent
-           while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) : 
-              niveauPere=niveauPere.treeParent
-           for c in self.children :
-              c.appartientAUnNoeudPlie=niveauPere.appartientAUnNoeudPlie
-              #print ("dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0], "mis a la valeur ", niveauPere.appartientAUnNoeudPlie)
-              c.setExpanded(False)
+        if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) :
+            niveauPere=self.treeParent
+            while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) :
+                niveauPere=niveauPere.treeParent
+            for c in self.children :
+                c.appartientAUnNoeudPlie=niveauPere.appartientAUnNoeudPlie
+                #print ("dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0], "mis a la valeur ", niveauPere.appartientAUnNoeudPlie)
+                c.setExpanded(False)
 
 
     def setDeplie(self):
@@ -982,12 +982,12 @@ class JDCNode(QTreeWidgetItem,GereRegles):
     #-----------------------------
         #print "dans setDeplieChildren appartientAUnNoeudPlie=False ", self.item.getLabelText()
         for c in self.children :
-           c.setDeplieChildren()
-           #print "dans setDeplieChildren ", c.item.nom
-           c.appartientAUnNoeudPlie=False
-           c.setExpanded(True)
-           c.plie=False
-       
+            c.setDeplieChildren()
+            #print "dans setDeplieChildren ", c.item.nom
+            c.appartientAUnNoeudPlie=False
+            c.setExpanded(True)
+            c.plie=False
+
     def selectAvant(self):
     #-----------------------------
         i=self.item.jdc.etapes.index(self.item.object)
@@ -995,12 +995,12 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         except : cherche=self.item.jdc.etapes[-1]
         node=None
         for i in self.tree.racine.children :
-           if i.item.object== cherche  : 
-               node=i
-               break
-        if node : 
-           node.affichePanneau()
-           node.select()
+            if i.item.object== cherche  :
+                node=i
+                break
+        if node :
+            node.affichePanneau()
+            node.select()
 
     def selectApres(self):
     #---------------------
@@ -1009,10 +1009,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         except : cherche=self.item.jdc.etapes[0]
         node=None
         for i in self.tree.racine.children :
-           if i.item.object== cherche  : 
-              node=i
-              break
-        if node : 
-           node.affichePanneau()
-           node.select()
-
+            if i.item.object== cherche  :
+                node=i
+                break
+        if node :
+            node.affichePanneau()
+            node.select()
index a05c21e8293a1e61719d0feeb138efb8625b55e1..e0ecb5ff57ed71524ac9dfcd2a3ddc7f8f3ae039 100644 (file)
@@ -28,7 +28,7 @@ from . import typeNode
 
 
 class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
-        
+
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
@@ -46,12 +46,12 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
 
 
 class BLOCTreeItem(compofact.FACTTreeItem):
-  itemNode=Node
+    itemNode=Node
 
-  def isCopiable(self):
-    return 0
+    def isCopiable(self):
+        return 0
 
 
 import Accas
 treeitem = BLOCTreeItem
-objet = Accas.MCBLOC   
+objet = Accas.MCBLOC
index 8c501b79784fb8ba6f5198e3a0b733397cff8c6f..c9bd556537156a14515d8568a3d01544d9ba322e 100644 (file)
@@ -43,7 +43,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
         self.Decommente.setStatusTip(tr("Decommente la commande "))
 
         if hasattr(self.item,'unComment'):
-           self.menu.addAction(self.Decommente)
+            self.menu.addAction(self.Decommente)
 
     def decommenter(self) :
         item= self.tree.currentItem()
@@ -55,20 +55,20 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
         debComm=self.item.getText()
         self.setText(1,tr(debComm))
 
-    
+
 class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
-    itemNode=Node    
+    itemNode=Node
 
     def init(self):
-      self.setFunction = self.setValeur
+        self.setFunction = self.setValeur
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone associee au noeud qui porte self,
-      dependant de la validite de l'objet
-      NB : un commentaire est toujours valide ...
-      """
-      return "ast-white-percent"
+        """
+        Retourne le nom de l'icone associee au noeud qui porte self,
+        dependant de la validite de l'objet
+        NB : un commentaire est toujours valide ...
+        """
+        return "ast-white-percent"
 
     def getLabelText(self):
         """ Retourne 3 valeurs :
@@ -79,11 +79,11 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
         return tr('Commentaire'),None,None
 
     def getValeur(self):
-      """
-      Retourne la valeur de l'objet Commentaire cad son texte
-      """
-      return self.object.getValeur() or ''
-    
+        """
+        Retourne la valeur de l'objet Commentaire cad son texte
+        """
+        return self.object.getValeur() or ''
+
     def getText(self):
         texte = self.object.valeur
         texte = texte.split('\n')[0]
@@ -93,26 +93,26 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
             return texte[0:24]
 
     def setValeur(self,valeur):
-      """
-      Affecte valeur a l'objet COMMENTAIRE
-      """
-      self.object.setValeur(valeur)
-      
+        """
+        Affecte valeur a l'objet COMMENTAIRE
+        """
+        self.object.setValeur(valeur)
+
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      """
-      return []
+        """
+        Retourne la liste des fils de self
+        """
+        return []
 
 
     def getObjetCommentarise(self):
-       """
-           La methode getObjetCommentarise() de la classe compocomm.COMMTreeItem
-           surcharge la methode getObjetCommentarise de la classe Objecttreeitem.ObjectTreeItem
-           elle a pour but d'empecher l'utilisateur final de commentariser un commentaire.
-       """
-       raise EficasException( 'Impossible de commentariser un commentaire' )
-  
+        """
+            La methode getObjetCommentarise() de la classe compocomm.COMMTreeItem
+            surcharge la methode getObjetCommentarise de la classe Objecttreeitem.ObjectTreeItem
+            elle a pour but d'empecher l'utilisateur final de commentariser un commentaire.
+        """
+        raise EficasException( 'Impossible de commentariser un commentaire' )
+
 import Extensions
 treeitem =COMMTreeItem
-objet = Extensions.commentaire.COMMENTAIRE    
+objet = Extensions.commentaire.COMMENTAIRE
index 41eed95a36ee0c016cd2bfe4d72c100e620de9d3..1ae3b992c694a5ce1242fe4d76da74929ef0f824 100644 (file)
@@ -28,18 +28,18 @@ class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
     itemNode=compocomm.Node
 
     def init(self):
-      self.setFunction = self.setValeur
+        self.setFunction = self.setValeur
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone associee au noeud qui porte self,
-      dependant de la validite de l'objet
-      NB : une commande commentarisee est toujours valide ...
-      """
-      if self.isValid():
-          return "ast-green-percent"
-      else:
-          return "ast-red-percent"
+        """
+        Retourne le nom de l'icone associee au noeud qui porte self,
+        dependant de la validite de l'objet
+        NB : une commande commentarisee est toujours valide ...
+        """
+        if self.isValid():
+            return "ast-green-percent"
+        else:
+            return "ast-red-percent"
 
     def getLabelText(self):
         """ Retourne 3 valeurs :
@@ -50,11 +50,11 @@ class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
         return 'commentaire'
 
     def getValeur(self):
-      """
-      Retourne la valeur de la commande commentarisee cad son texte
-      """
-      return self.object.getValeur() or ''
-    
+        """
+        Retourne la valeur de la commande commentarisee cad son texte
+        """
+        return self.object.getValeur() or ''
+
     def getText(self):
         texte = self.object.valeur
         texte = texte.split('\n')[0]
@@ -64,31 +64,31 @@ class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
             return texte[0:24]
 
     def setValeur(self,valeur):
-      """
-      Afefcte valeur a l'objet commande commentarisee
-      """
-      self.object.setValeur(valeur)
-      
+        """
+        Afefcte valeur a l'objet commande commentarisee
+        """
+        self.object.setValeur(valeur)
+
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      """
-      return []
+        """
+        Retourne la liste des fils de self
+        """
+        return []
 
     def unComment(self):
-      """
-      Demande a l'objet commande commentarisee de se decommentariser.
-      Si l'operation s'effectue correctement, retourne l'objet commande
-      et eventuellement le nom de la sd produite, sinon leve une exception
-      """
-      try:
-        commande,nom = self.object.unComment()
-        #self.parent.children[pos].select()
-      except Exception as e:
-        traceback.print_exc()
-        raise EficasException(e)
-      return commande,nom
-  
+        """
+        Demande a l'objet commande commentarisee de se decommentariser.
+        Si l'operation s'effectue correctement, retourne l'objet commande
+        et eventuellement le nom de la sd produite, sinon leve une exception
+        """
+        try:
+            commande,nom = self.object.unComment()
+            #self.parent.children[pos].select()
+        except Exception as e:
+            traceback.print_exc()
+            raise EficasException(e)
+        return commande,nom
+
 import Accas
 treeitem =COMMANDE_COMMTreeItem
-objet = Accas.COMMANDE_COMM    
+objet = Accas.COMMANDE_COMM
index 57dd1df848df934f1c75f876fe9cf5743c877867..619e7547c00e549c57b42c6d1a4e453e3c66d5d4 100644 (file)
@@ -38,17 +38,17 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
         maCommande=commande
         if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1
         else : self.niveau=1
-        if  hasattr(self,'plie') and self.plie==True : 
-           from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
-           widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
-        elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche: 
-           self.firstAffiche = False
-           self.setPlie()
-           from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
-           widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+        if  hasattr(self,'plie') and self.plie==True :
+            from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+            widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+        elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche:
+            self.firstAffiche = False
+            self.setPlie()
+            from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+            widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         else:
-           from InterfaceQT4.monWidgetFact import MonWidgetFact
-           widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            from InterfaceQT4.monWidgetFact import MonWidgetFact
+            widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         return widget
 
 
@@ -58,95 +58,95 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
 
 
 class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
-  itemNode=Node
-  
-  def isExpandable(self):
-  # ----------------------
-    return 1
-
-  def getText(self):
-  # ----------------
-      return  ''
-
-  def getLabelText(self):
-  # ----------------------
-      """ Retourne 3 valeurs :
-        - le texte à afficher dans le noeud representant l'item
-        - la fonte dans laquelle afficher ce texte
-        - la couleur du texte
-      """
-      # None --> fonte et couleur par defaut
-      if not(hasattr(self.object,'getLabelText')): return self.object.nom,None,None
-      return self.object.getLabelText(),None,None
-
-  def isValid(self):
-  # ----------------
-    return self.object.isValid()
-
-  def isCopiable(self):
-  # ----------------
-    return 1
-
-  def getIconName(self):
-  # ----------------
-    if self.object.isValid()  : return "ast-green-los"
-    elif self.object.isOblig(): return "ast-red-los"
-    else                      : return "ast-yel-los"
-
-  #PNPN ????
-  #def keys(self):
-  #  keys=self.object.mc_dict
-  #  return keys
-
-  def getSubList(self):
-  # ----------------
-      """
-         Reactualise la liste des items fils stockes dans self.sublist
-      """
-      liste=self.object.mcListe
-      sublist=[None]*len(liste)
-      # suppression des items lies aux objets disparus
-      for item in self.sublist:
-         old_obj=item.getObject()
-         if old_obj in liste:
-            pos=liste.index(old_obj)
-            sublist[pos]=item
-         else:
-            pass # objets supprimes ignores
-      # ajout des items lies aux nouveaux objets
-      pos=0
-      for obj in liste:
-         if sublist[pos] is None:
-            # nouvel objet : on cree un nouvel item
-            def setFunction(value, object=obj):
-                object.setval(value)
-            item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
-            sublist[pos]=item
-         pos=pos+1
-
-      self.sublist=sublist
-      return self.sublist
-
-  def addItem(self,name,pos):
-    objet = self.object.addEntite(name,pos)
-    return objet
-
-  def suppItem(self,item) :
-      """ 
-         Cette methode a pour fonction de supprimer l'item passee en argument
-         des fils de l'item FACT qui est son pere
-           - item = item du MOCLE a supprimer du MOCLE pere
-           - item.getObject() = MCSIMP ou MCBLOC 
-      """
-      itemobject=item.getObject()
-      if itemobject.isOblig() :
-         return (0, tr('Impossible de supprimer un mot-cle obligatoire '))
-
-      if self.object.suppEntite(itemobject):
-         message = tr("Mot-cle %s supprime")+ itemobject.nom
-         return (1, message)
-      else:
-         return (0,tr('Pb interne : impossible de supprimer ce mot-cle'))
+    itemNode=Node
+
+    def isExpandable(self):
+    # ----------------------
+        return 1
+
+    def getText(self):
+    # ----------------
+        return  ''
+
+    def getLabelText(self):
+    # ----------------------
+        """ Retourne 3 valeurs :
+          - le texte à afficher dans le noeud representant l'item
+          - la fonte dans laquelle afficher ce texte
+          - la couleur du texte
+        """
+        # None --> fonte et couleur par defaut
+        if not(hasattr(self.object,'getLabelText')): return self.object.nom,None,None
+        return self.object.getLabelText(),None,None
+
+    def isValid(self):
+    # ----------------
+        return self.object.isValid()
+
+    def isCopiable(self):
+    # ----------------
+        return 1
+
+    def getIconName(self):
+    # ----------------
+        if self.object.isValid()  : return "ast-green-los"
+        elif self.object.isOblig(): return "ast-red-los"
+        else                      : return "ast-yel-los"
+
+    #PNPN ????
+    #def keys(self):
+    #  keys=self.object.mc_dict
+    #  return keys
+
+    def getSubList(self):
+    # ----------------
+        """
+           Reactualise la liste des items fils stockes dans self.sublist
+        """
+        liste=self.object.mcListe
+        sublist=[None]*len(liste)
+        # suppression des items lies aux objets disparus
+        for item in self.sublist:
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
+        # ajout des items lies aux nouveaux objets
+        pos=0
+        for obj in liste:
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object.setval(value)
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                sublist[pos]=item
+            pos=pos+1
+
+        self.sublist=sublist
+        return self.sublist
+
+    def addItem(self,name,pos):
+        objet = self.object.addEntite(name,pos)
+        return objet
+
+    def suppItem(self,item) :
+        """
+           Cette methode a pour fonction de supprimer l'item passee en argument
+           des fils de l'item FACT qui est son pere
+             - item = item du MOCLE a supprimer du MOCLE pere
+             - item.getObject() = MCSIMP ou MCBLOC
+        """
+        itemobject=item.getObject()
+        if itemobject.isOblig() :
+            return (0, tr('Impossible de supprimer un mot-cle obligatoire '))
+
+        if self.object.suppEntite(itemobject):
+            message = tr("Mot-cle %s supprime")+ itemobject.nom
+            return (1, message)
+        else:
+            return (0,tr('Pb interne : impossible de supprimer ce mot-cle'))
 
 import Accas
 objet = Accas.MCFACT
index d18af81b9b843a601e604986093f76e8626b2233..d78dcbebdab98060e9a86aad4cfb5280bd4e11f1 100644 (file)
@@ -31,14 +31,14 @@ from . import typeNode
 
 
 class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode):
-        
+
     def getPanel(self):
-      from .monWidgetFormule import MonWidgetFormule
-      return MonWidgetFormule(self,self.editor,self.item.object)
+        from .monWidgetFormule import MonWidgetFormule
+        return MonWidgetFormule(self,self.editor,self.item.object)
+
 
-   
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
 
 class FORMULETreeItem(compooper.EtapeTreeItem):
@@ -49,118 +49,118 @@ class FORMULETreeItem(compooper.EtapeTreeItem):
     itemNode=FormuleNode
 
     def init(self):
-      self.setFunction = self.setValeur
+        self.setFunction = self.setValeur
 
 # ---------------------------------------------------------------------------
-#                   API de FORMULE pour l'arbre 
+#                   API de FORMULE pour l'arbre
 # ---------------------------------------------------------------------------
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      On considere que FORMULE n'a pas de fils
-      --> modification par rapport a MACRO classique
-      """
-      # dans EFICAS on ne souhaite pas afficher les mots-cles fils de FORMULE
-      # de facon traditionnelle
-      return []
+        """
+        Retourne la liste des fils de self
+        On considere que FORMULE n'a pas de fils
+        --> modification par rapport a MACRO classique
+        """
+        # dans EFICAS on ne souhaite pas afficher les mots-cles fils de FORMULE
+        # de facon traditionnelle
+        return []
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone a afficher dans l'arbre
-      Ce nom depend de la validite de l'objet
-      """
-      if self.object.isActif():
-        if self.object.isValid():
-          return "ast-green-square"
+        """
+        Retourne le nom de l'icone a afficher dans l'arbre
+        Ce nom depend de la validite de l'objet
+        """
+        if self.object.isActif():
+            if self.object.isValid():
+                return "ast-green-square"
+            else:
+                return "ast-red-square"
         else:
-          return "ast-red-square"
-      else:
-        return "ast-white-text"
+            return "ast-white-text"
 
     def getLabelText(self):
-      """ Retourne 3 valeurs :
-      - le texte a afficher dans le noeud representant l'item
-      - la fonte dans laquelle afficher ce texte
-      - la couleur du texte
-      """
-      return self.labeltext,None,None
-      #if self.object.isActif():
-        # None --> fonte et couleur par defaut
-      #  return tr(self.labeltext),None,None
-      #else:
-      #   return tr(self.labeltext),None,None
-      #return self.labeltext,fontes.standard_italique,None
-    
+        """ Retourne 3 valeurs :
+        - le texte a afficher dans le noeud representant l'item
+        - la fonte dans laquelle afficher ce texte
+        - la couleur du texte
+        """
+        return self.labeltext,None,None
+        #if self.object.isActif():
+            # None --> fonte et couleur par defaut
+        #  return tr(self.labeltext),None,None
+        #else:
+        #   return tr(self.labeltext),None,None
+        #return self.labeltext,fontes.standard_italique,None
+
 # ---------------------------------------------------------------------------
 #       Methodes permettant la modification et la lecture des attributs
 #       du parametre = API graphique de la FORMULE pour Panel et EFICAS
 # ---------------------------------------------------------------------------
 
     def getNom(self):
-      """
-      Retourne le nom de la FORMULE
-      """
-      return self.object.getNom()
+        """
+        Retourne le nom de la FORMULE
+        """
+        return self.object.getNom()
 
     def getType(self):
-      """
-      Retourne le type de la valeur retournee par la FORMULE
-      """
-      return self.object.type_retourne
+        """
+        Retourne le type de la valeur retournee par la FORMULE
+        """
+        return self.object.type_retourne
 
     def getArgs(self):
-      """
-      Retourne les arguments de la FORMULE
-      """
-      args=""
-      for mot in self.object.mcListe:
-          if mot.nom == 'NOM_PARA':
-             args=mot.valeur
-             break
-      if args :
-          if args[0] == "(" and args[-1] ==")":
-             args=args[1:-1]
-          # transforme en tuple si ce n est pas deja le casa
-          try :
-             args=args.split(',')
-          except :
-             pass
-      return args
+        """
+        Retourne les arguments de la FORMULE
+        """
+        args=""
+        for mot in self.object.mcListe:
+            if mot.nom == 'NOM_PARA':
+                args=mot.valeur
+                break
+        if args :
+            if args[0] == "(" and args[-1] ==")":
+                args=args[1:-1]
+            # transforme en tuple si ce n est pas deja le casa
+            try :
+                args=args.split(',')
+            except :
+                pass
+        return args
 
     def getCorps(self):
-      """
-      Retourne le corps de la FORMULE
-      """
-      corps=""
-      for mot in self.object.mcListe:
-          if mot.nom == 'VALE':
-             corps=mot.valeur
-             break
-      return corps
+        """
+        Retourne le corps de la FORMULE
+        """
+        corps=""
+        for mot in self.object.mcListe:
+            if mot.nom == 'VALE':
+                corps=mot.valeur
+                break
+        return corps
 
 
     def getListeTypesAutorises(self):
-      """
-         Retourne la liste des types autorises pour les valeurs de sortie 
-         d'une FORMULE
-      """
-      return self.object.l_types_autorises
+        """
+           Retourne la liste des types autorises pour les valeurs de sortie
+           d'une FORMULE
+        """
+        return self.object.l_types_autorises
 
     def saveFormule(self,new_nom,new_typ,new_arg,new_exp):
-      """
-      Verifie si (new_nom,new_typ,new_arg,new_exp) definit bien une FORMULE 
-      licite :
-          - si oui, stocke ces parametres comme nouveaux parametres de la 
-            FORMULE courante et retourne 1
-          - si non, laisse les parametres anciens de la FORMULE inchanges et 
-            retourne 0
-      """
-      test,erreur = self.object.verifFormule_python(formule=(new_nom,new_typ,new_arg,
-                                                       new_exp))
-      if test :
-          # la formule est bien correcte : on sauve les nouveaux parametres
-          test=self.object.updateFormulePython(formule=(new_nom,new_typ,new_exp,new_arg))
-      return test,erreur
+        """
+        Verifie si (new_nom,new_typ,new_arg,new_exp) definit bien une FORMULE
+        licite :
+            - si oui, stocke ces parametres comme nouveaux parametres de la
+              FORMULE courante et retourne 1
+            - si non, laisse les parametres anciens de la FORMULE inchanges et
+              retourne 0
+        """
+        test,erreur = self.object.verifFormule_python(formule=(new_nom,new_typ,new_arg,
+                                                         new_exp))
+        if test :
+            # la formule est bien correcte : on sauve les nouveaux parametres
+            test=self.object.updateFormulePython(formule=(new_nom,new_typ,new_exp,new_arg))
+        return test,erreur
 
 # ---------------------------------------------------------------------------
 #          Acces aux methodes de verification de l'objet FORM_ETAPE
index 87121de436b0d467bbd08715c118c28487d30d86..70244082fd2cf722371a2741fab1f652978e1849 100644 (file)
@@ -30,7 +30,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuRacine):
     def getPanel(self):
         from .monChoixCommande import MonChoixCommande
         return MonChoixCommande(self,self.item, self.editor)
-        
+
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuRacine.createPopUpMenu(self)
@@ -38,98 +38,98 @@ class Node(browser.JDCNode,typeNode.PopUpMenuRacine):
     def addParameters(self,apres):
         param=self.appendChild("PARAMETRE",pos=0)
         return param
-       
+
 
 
 class JDCTreeItem(Objecttreeitem.ObjectTreeItem):
-  itemNode=Node
-  
-  def isExpandable(self):
-    return 1
-
-  def getText(self):
-      return  "    "
-
-  def getLabelText(self):
-      # None --> fonte et couleur par defaut
-      return tr(self.object.nom),None,None
-
-  def getJdc(self):
-    """
-    Retourne l'objet pointe par self
-    """
-    return self.object
-  
-  def getIconName(self):
-    if self.object.isValid():
-      return "ast-green-square"
-    else:
-      return "ast-red-square"
-
-  #def keys(self):
-  #    if self.object.etapes_niveaux != []:
-  #        return range(len(self.object.etapes_niveaux))
-  #    else:
-  #        return range(len(self.object.etapes))
-
-  def addItem(self,name,pos):
-      cmd = self._object.addEntite(name,pos)
-      return cmd
-
-  def suppItem(self,item) :
-    # item             = item de l'ETAPE a supprimer du JDC
-    # item.getObject() = ETAPE ou COMMENTAIRE
-    # self.object      = JDC
-
-    itemobject=item.getObject()
-    if self.object.suppEntite(itemobject):
-       if itemobject.nature == "COMMENTAIRE" :
-          message = tr("Commentaire supprime")
-       else :
-          message = tr("Commande %s supprimee",itemobject.nom)
-       return 1,message
-    else:
-       message=tr("Pb interne : impossible de supprimer cet objet")
-       return 0,message
-
-  def getSubList(self):
-    """
-       Retourne la liste des items fils de l'item jdc.
-       Cette liste est conservee et mise a jour a chaque appel
-    """
-    if self.object.etapes_niveaux != []:
-        liste = self.object.etapes_niveaux
-    else:
-        liste = self.object.etapes
-    sublist=[None]*len(liste)
-    # suppression des items lies aux objets disparus
-    for item in self.sublist:
-       old_obj=item.getObject()
-       if old_obj in liste:
-          pos=liste.index(old_obj)
-          sublist[pos]=item
-       else:
-          pass # objets supprimes ignores
-    # ajout des items lies aux nouveaux objets
-    pos=0
-    for obj in liste:
-       if sublist[pos] is None:
-          # nouvel objet : on cree un nouvel item
-          item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj)
-          sublist[pos]=item
-       pos=pos+1
-
-    self.sublist=sublist
-    return self.sublist
-
-  def getLNomsEtapes(self):
-      """ Retourne la liste des noms des etapes de self.object"""
-      return self.object.getLNomsEtapes()
-
-  def getListeCmd(self):
-      listeCmd = self.object.niveau.definition.getListeCmd()
-      return listeCmd
+    itemNode=Node
+
+    def isExpandable(self):
+        return 1
+
+    def getText(self):
+        return  "    "
+
+    def getLabelText(self):
+        # None --> fonte et couleur par defaut
+        return tr(self.object.nom),None,None
+
+    def getJdc(self):
+        """
+        Retourne l'objet pointe par self
+        """
+        return self.object
+
+    def getIconName(self):
+        if self.object.isValid():
+            return "ast-green-square"
+        else:
+            return "ast-red-square"
+
+    #def keys(self):
+    #    if self.object.etapes_niveaux != []:
+    #        return range(len(self.object.etapes_niveaux))
+    #    else:
+    #        return range(len(self.object.etapes))
+
+    def addItem(self,name,pos):
+        cmd = self._object.addEntite(name,pos)
+        return cmd
+
+    def suppItem(self,item) :
+        # item             = item de l'ETAPE a supprimer du JDC
+        # item.getObject() = ETAPE ou COMMENTAIRE
+        # self.object      = JDC
+
+        itemobject=item.getObject()
+        if self.object.suppEntite(itemobject):
+            if itemobject.nature == "COMMENTAIRE" :
+                message = tr("Commentaire supprime")
+            else :
+                message = tr("Commande %s supprimee",itemobject.nom)
+            return 1,message
+        else:
+            message=tr("Pb interne : impossible de supprimer cet objet")
+            return 0,message
+
+    def getSubList(self):
+        """
+           Retourne la liste des items fils de l'item jdc.
+           Cette liste est conservee et mise a jour a chaque appel
+        """
+        if self.object.etapes_niveaux != []:
+            liste = self.object.etapes_niveaux
+        else:
+            liste = self.object.etapes
+        sublist=[None]*len(liste)
+        # suppression des items lies aux objets disparus
+        for item in self.sublist:
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
+        # ajout des items lies aux nouveaux objets
+        pos=0
+        for obj in liste:
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj)
+                sublist[pos]=item
+            pos=pos+1
+
+        self.sublist=sublist
+        return self.sublist
+
+    def getLNomsEtapes(self):
+        """ Retourne la liste des noms des etapes de self.object"""
+        return self.object.getLNomsEtapes()
+
+    def getListeCmd(self):
+        listeCmd = self.object.niveau.definition.getListeCmd()
+        return listeCmd
 
 import Accas
 treeitem =JDCTreeItem
-objet = Accas.JDC    
+objet = Accas.JDC
index 9a1fcbb2098bbae26f28a8ae2b9cfbf5c6e277fe..4f610b4fd8dd2b2ca61d039eab0392cbbf26fda8 100644 (file)
@@ -32,23 +32,23 @@ from InterfaceQT4 import browser
 from InterfaceQT4 import typeNode
 
 
-class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):         
-    
+class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
+
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
 #    def view3D(self) :
 #        from Editeur import TroisDPal
 #        troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
 #        troisD.envoievisu()
 
-        
-    
+
+
 class MACROTreeItem(compooper.EtapeTreeItem):
 #  """ Cette classe herite d'une grande partie des comportements
 #      de la classe compooper.EtapeTreeItem
@@ -61,97 +61,97 @@ class MACROTreeItem(compooper.EtapeTreeItem):
 
 class INCLUDETreeItemBase(MACROTreeItem):
 
-    def __init__(self,appliEficas, labeltext, object, setFunction):    
-       MACROTreeItem.__init__(self,appliEficas, labeltext, object, setFunction)
+    def __init__(self,appliEficas, labeltext, object, setFunction):
+        MACROTreeItem.__init__(self,appliEficas, labeltext, object, setFunction)
 
     def isCopiable(self):
-       return 0
+        return 0
 
 
-class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):    
+class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):
 
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
-      
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
+
     def makeEdit(self):    #,appliEficas,node
         if self.item.object.text_converted == 0:
-                # Le texte du fichier inclus n'a pas pu etre converti par le module convert
-                msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
-                msg=msg+self.item.object.text_error
-                return
-    
+            # Le texte du fichier inclus n'a pas pu etre converti par le module convert
+            msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
+            msg=msg+self.item.object.text_error
+            return
+
         if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
-               #L'include n'est pas initialise
-               self.item.object.buildInclude(None,"")
-    
+            #L'include n'est pas initialise
+            self.item.object.buildInclude(None,"")
+
         # On cree un nouvel onglet dans le bureau
         self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom )
-     
+
 
 class INCLUDETreeItem(INCLUDETreeItemBase):
     itemNode=INCLUDENode
-    
+
 
 # ------------------------------------
 #  Classes necessaires a POURSUITE
 # ------------------------------------
-    
-class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):    
+
+class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):
 
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
     def makeEdit(self):    #,appliEficas,node
         if self.item.object.text_converted == 0:
-                msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
-                msg=msg+self.item.object.text_error
-                return
-    
+            msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
+            msg=msg+self.item.object.text_error
+            return
+
         if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
             text="""DEBUT()
                     FIN()"""
             self.object.buildPoursuite(None,text)
-    
+
         # On cree un nouvel onglet dans le bureau
         self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom)
-    
+
 class POURSUITETreeItem(INCLUDETreeItemBase):
-  itemNode=POURSUITENode
+    itemNode=POURSUITENode
 
 
 # ----------------------------------------
 #  Classes necessaires a INCLUDE MATERIAU
 # ----------------------------------------
-    
+
 
 class MATERIAUNode(MACRONode):
 
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
     def makeView(self) :
-      if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
-         QMessageBox.information( self,tr("Include vide"),tr("L'include doit etre correctement initialise pour etre visualise"))
-         return
-      f = open(self.item.object.fichier_ini, "rb")
-      texte = f.read()
-      f.close()
-      from desVisu import DVisu
-      monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
-      monVisuDialg.TB.setText(texte)
-      monVisuDialg.show()
+        if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
+            QMessageBox.information( self,tr("Include vide"),tr("L'include doit etre correctement initialise pour etre visualise"))
+            return
+        f = open(self.item.object.fichier_ini, "rb")
+        texte = f.read()
+        f.close()
+        from desVisu import DVisu
+        monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
+        monVisuDialg.TB.setText(texte)
+        monVisuDialg.show()
 
 
 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
@@ -160,22 +160,20 @@ class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
 # ------------------------------------
 # TreeItem
 # ------------------------------------
-    
+
 
 def treeitem(appliEficas, labeltext, object, setFunction=None):
-   """ Factory qui retourne l'item adapte au type de macro : 
-       INCLUDE, POURSUITE, MACRO
-   """
-   if object.nom == "INCLUDE_MATERIAU":
-      return INCLUDE_MATERIAUTreeItem(appliEficas, labeltext, object, setFunction)
-   elif object.nom == "INCLUDE" or object.nom== "DICTDATA":
-      return INCLUDETreeItem(appliEficas, labeltext, object, setFunction)
-   elif object.nom == "POURSUITE":
-      return POURSUITETreeItem(appliEficas, labeltext, object, setFunction)
-   else:
-      return MACROTreeItem(appliEficas, labeltext, object, setFunction)
+    """ Factory qui retourne l'item adapte au type de macro :
+        INCLUDE, POURSUITE, MACRO
+    """
+    if object.nom == "INCLUDE_MATERIAU":
+        return INCLUDE_MATERIAUTreeItem(appliEficas, labeltext, object, setFunction)
+    elif object.nom == "INCLUDE" or object.nom== "DICTDATA":
+        return INCLUDETreeItem(appliEficas, labeltext, object, setFunction)
+    elif object.nom == "POURSUITE":
+        return POURSUITETreeItem(appliEficas, labeltext, object, setFunction)
+    else:
+        return MACROTreeItem(appliEficas, labeltext, object, setFunction)
 
 import Accas
 objet=Accas.MACRO_ETAPE
-    
-
index c37efb07adec7c42de3f4764bf1c8cd807aa8af6..d4bbabae075dcbf9f97c0e7532d93d8b1373219f 100644 (file)
@@ -45,20 +45,20 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
         else : self.niveau=1
         # attention si l objet est une mclist on utilise bloc
         if not (monObjet.isMCList()) :
-           if  hasattr(self,'plie') and self.plie==True : 
-               from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
-               widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
-           elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche:
-               self.firstAffiche = False
-               self.setPlie()
-               from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
-               widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
-           else:
-               from InterfaceQT4.monWidgetFact import MonWidgetFact
-               widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            if  hasattr(self,'plie') and self.plie==True :
+                from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+                widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche:
+                self.firstAffiche = False
+                self.setPlie()
+                from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+                widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            else:
+                from InterfaceQT4.monWidgetFact import MonWidgetFact
+                widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         else :
-           from InterfaceQT4.monWidgetBloc import MonWidgetBloc
-           widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            from InterfaceQT4.monWidgetBloc import MonWidgetBloc
+            widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         return widget
 
 
@@ -80,7 +80,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
         Elle adapte ces objets pour leur permettre d'etre integres en tant que
         noeuds dans un arbre graphique (voir treewidget.py et ObjectTreeItem.py).
         Cette classe delegue les appels de methode et les acces
-        aux attributs a l'objet du noyau soit manuellement soit 
+        aux attributs a l'objet du noyau soit manuellement soit
         automatiquement (voir classe Delegate et attribut object).
     """
     itemNode=Node
@@ -92,9 +92,9 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
 
     def updateDelegate(self):
         if len(self._object) > 1:
-           self.setDelegate(self._object)
+            self.setDelegate(self._object)
         else:
-           self.setDelegate(self._object.data[0])
+            self.setDelegate(self._object.data[0])
 
     def panel(self,jdcdisplay,pane,node):
         """ Retourne une instance de l'objet panneau associe a l'item (self)
@@ -103,49 +103,49 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
             Si la liste est plus longue on utilise le panneau MCLISTPanel.
         """
         if len(self._object) > 1:
-           return MCLISTPanel(jdcdisplay,pane,node)
+            return MCLISTPanel(jdcdisplay,pane,node)
         elif isinstance(self._object.data[0],ErrorObj):
-           return compoerror.ERRORPanel(jdcdisplay,pane,node)
+            return compoerror.ERRORPanel(jdcdisplay,pane,node)
         else:
-           return compofact.FACTPanel(jdcdisplay,pane,node)
+            return compofact.FACTPanel(jdcdisplay,pane,node)
 
     def isExpandable(self):
         if len(self._object) > 1:
-           return Objecttreeitem.SequenceTreeItem.isExpandable(self)
+            return Objecttreeitem.SequenceTreeItem.isExpandable(self)
         else:
-           return compofact.FACTTreeItem.isExpandable(self)
+            return compofact.FACTTreeItem.isExpandable(self)
 
     def getSubList(self):
         self.updateDelegate()
         if len(self._object) <= 1:
-           self._object.data[0].alt_parent=self._object
-           return compofact.FACTTreeItem.getSubList(self)
+            self._object.data[0].alt_parent=self._object
+            return compofact.FACTTreeItem.getSubList(self)
 
         liste=self._object.data
         sublist=[None]*len(liste)
         # suppression des items lies aux objets disparus
         for item in self.sublist:
-           old_obj=item.getObject()
-           if old_obj in liste:
-              pos=liste.index(old_obj)
-              sublist[pos]=item
-           else:
-              pass # objets supprimes ignores
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
         # ajout des items lies aux nouveaux objets
         pos=0
         for obj in liste:
-           if sublist[pos] is None:
-              # nouvel objet : on cree un nouvel item
-              def setFunction(value, object=obj):
-                  object=value
-              item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
-              sublist[pos]=item
-              #Attention : on ajoute une information supplementaire pour l'actualisation de 
-              # la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE
-              # et pas sur la MCLISTE elle meme ce qui rompt la chaine de remontee des
-              # informations de validite. alt_parent permet de remedier a ce defaut.
-              obj.alt_parent=self._object
-           pos=pos+1
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object=value
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                sublist[pos]=item
+                #Attention : on ajoute une information supplementaire pour l'actualisation de
+                # la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE
+                # et pas sur la MCLISTE elle meme ce qui rompt la chaine de remontee des
+                # informations de validite. alt_parent permet de remedier a ce defaut.
+                obj.alt_parent=self._object
+            pos=pos+1
 
         self.sublist=sublist
         return self.sublist
@@ -160,13 +160,13 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
 
     def getDocu(self):
         """ Retourne la clef de doc de l'objet pointe par self """
-        return self.object.getDocu()    
+        return self.object.getDocu()
 
     def isCopiable(self):
         if len(self._object) > 1:
-           return Objecttreeitem.SequenceTreeItem.isCopiable(self)
+            return Objecttreeitem.SequenceTreeItem.isCopiable(self)
         else:
-           return compofact.FACTTreeItem.isCopiable(self)
+            return compofact.FACTTreeItem.isCopiable(self)
 
     def isMCFact(self):
         """
@@ -179,40 +179,40 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
         Retourne 1 si l'objet pointe par self est une MCList, 0 sinon
         """
         return len(self._object) > 1
-        
+
     def getCopieObjet(self):
         return self._object.data[0].copy()
 
     def addItem(self,obj,pos):
         #print "compomclist.addItem",obj,pos
         if len(self._object) <= 1:
-           return compofact.FACTTreeItem.addItem(self,obj,pos)
+            return compofact.FACTTreeItem.addItem(self,obj,pos)
 
         o= self.object.addEntite(obj,pos)
         return o
 
     def suppItem(self,item):
         """
-        Retire un objet MCFACT de la MCList (self.object) 
+        Retire un objet MCFACT de la MCList (self.object)
         """
         #print "compomclist.suppItem",item
         obj=item.getObject()
         if len(self._object) <= 1:
-           return compofact.FACTTreeItem.suppItem(self,item)
+            return compofact.FACTTreeItem.suppItem(self,item)
 
         if self.object.suppEntite(obj):
-           if len(self._object) == 1: self.updateDelegate()     
-           message = "Mot-clef " + obj.nom + " supprime"
-           return (1,message)
+            if len(self._object) == 1: self.updateDelegate()
+            message = "Mot-clef " + obj.nom + " supprime"
+            return (1,message)
         else:
-           return (0,tr('Impossible de supprimer ce mot-clef'))
+            return (0,tr('Impossible de supprimer ce mot-clef'))
+
 
-            
 import Accas
-objet = Accas.MCList    
+objet = Accas.MCList
 
 def treeitem(appliEficas,labeltext,object,setFunction):
-  """ Factory qui produit un objet treeitem adapte a un objet 
-      Accas.MCList (attribut objet de ce module)
-  """
-  return MCListTreeItem(appliEficas,labeltext,object,setFunction)
+    """ Factory qui produit un objet treeitem adapte a un objet
+        Accas.MCList (attribut objet de ce module)
+    """
+    return MCListTreeItem(appliEficas,labeltext,object,setFunction)
index 56e2419626838d3c2404bc612d41dc7c26417f9a..efebbd9eaf517274681923d7a907d95ef55978a3 100644 (file)
@@ -19,7 +19,7 @@
 #
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os
@@ -48,16 +48,16 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode):
         self.editor.initModif()
         test,mess = self.item.nommeSd(nom)
         if (test== 0):
-           self.editor.afficheInfos(mess,'red')
-           old=self.item.getText()
-           self.monWidgetNom.setText(old)
+            self.editor.afficheInfos(mess,'red')
+            old=self.item.getText()
+            self.monWidgetNom.setText(old)
         else :
-           self.editor.afficheCommentaire(tr("Nommage du concept effectue"))
-           self.onValid()
-           try :
-             self.fenetre.LENom.setText(nom)
-           except :
-             pass
+            self.editor.afficheCommentaire(tr("Nommage du concept effectue"))
+            self.onValid()
+            try :
+                self.fenetre.LENom.setText(nom)
+            except :
+                pass
 
 
     def getPanel(self):
@@ -74,208 +74,207 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode):
 
 
 class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
-  """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau
-      Accas. Elle leur permet d'etre affichés comme des noeuds
-      d'un arbre graphique.
-      Cette classe a entre autres deux attributs importants :
-        - _object qui est un pointeur vers l'objet du noyau
-        - object qui pointe vers l'objet auquel sont délégués les
-          appels de méthode et les acces aux attributs
-      Dans le cas d'une ETAPE, _object et object pointent vers le 
-      meme objet.
-  """
-  itemNode=Node
-  
-  def isExpandable(self):
-      return 1
-
-  def getIconName(self):
-      """
-      Retourne le nom de l'icone a afficher dans l'arbre
-      Ce nom depend de la validite de l'objet
-      """
-      if not self.object.isActif():
-         return "ast-white-square"
-      elif self.object.isValid():
-         return "ast-green-square"
-      else:
-         valid=self.validChild()
-         valid= valid * self.validRegles("non")
-         if self.reste_val != {} : valid=0
-         if valid==0  :
-            return "ast-red-square"
-         else :
-            try :
-            # on traite ici le cas d include materiau
-            #  print self.object.definition.nom 
-              if  self.object.fichier_ini != self.object.nom_mater :
-                  return "ast-red-square"
-            except :
-              pass
-            return "ast-yellow-square"
-
-  def getLabelText(self):
-      """ Retourne 3 valeurs :
-      - le texte a afficher dans le noeud représentant l'item
-      - la fonte dans laquelle afficher ce texte
-      - la couleur du texte
-      """
-      return self.labeltext,None,None
-      #if self.object.isActif():
+    """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau
+        Accas. Elle leur permet d'etre affichés comme des noeuds
+        d'un arbre graphique.
+        Cette classe a entre autres deux attributs importants :
+          - _object qui est un pointeur vers l'objet du noyau
+          - object qui pointe vers l'objet auquel sont délégués les
+            appels de méthode et les acces aux attributs
+        Dans le cas d'une ETAPE, _object et object pointent vers le
+        meme objet.
+    """
+    itemNode=Node
+
+    def isExpandable(self):
+        return 1
+
+    def getIconName(self):
+        """
+        Retourne le nom de l'icone a afficher dans l'arbre
+        Ce nom depend de la validite de l'objet
+        """
+        if not self.object.isActif():
+            return "ast-white-square"
+        elif self.object.isValid():
+            return "ast-green-square"
+        else:
+            valid=self.validChild()
+            valid= valid * self.validRegles("non")
+            if self.reste_val != {} : valid=0
+            if valid==0  :
+                return "ast-red-square"
+            else :
+                try :
+                # on traite ici le cas d include materiau
+                #  print self.object.definition.nom
+                    if  self.object.fichier_ini != self.object.nom_mater :
+                        return "ast-red-square"
+                except :
+                    pass
+                return "ast-yellow-square"
+
+    def getLabelText(self):
+        """ Retourne 3 valeurs :
+        - le texte a afficher dans le noeud représentant l'item
+        - la fonte dans laquelle afficher ce texte
+        - la couleur du texte
+        """
+        return self.labeltext,None,None
+        #if self.object.isActif():
         # None --> fonte et couleur par défaut
-      #  return self.labeltext,None,None
-      #else:
-      #  return self.labeltext, None, None #CS_pbruno todo
-      
-  #def get_objet(self,name) :
-  #    for v in self.object.mcListe:
-  #        if v.nom == name : return v
-  #    return None
-      
- # def getType_sd_prod(self):
- #     """
- #        Retourne le nom du type du concept résultat de l'étape
- #     """
- #     sd_prod=self.object.getType_produit()
- #     if sd_prod:
- #        return sd_prod.__name__
- #     else:
- #        return ""
-
-  def addItem(self,name,pos):      
-      mcent = self._object.addEntite(name,pos)
-      return mcent
-      
-
-  def suppItem(self,item) :
-      # item : item du MOCLE de l'ETAPE a supprimer
-      # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList 
-      itemobject=item.getObject()
-      if itemobject.isOblig() :
-          return (0,tr('Impossible de supprimer un mot-clef obligatoire '))
-      if self.object.suppEntite(itemobject):
-          message = tr("Mot-clef %s supprime " , itemobject.nom)
-          return (1,message)
-      else :
-          return (0,tr('Pb interne : impossible de supprimer ce mot-clef'))
-
-  def getText(self):
-      try:
-          return self.object.getSdname()
-      except:
-          return ''
-
-  # PNPN ????
-  #def keys(self):
-  #    keys=self.object.mc_dict
-  #    return keys
-
-  def getSubList(self):
-      """
-         Reactualise la liste des items fils stockes dans self.sublist
-      """
-      if self.isActif():
-         liste=self.object.mcListe
-      else:
-         liste=[]
-
-      sublist=[None]*len(liste)
-      # suppression des items lies aux objets disparus
-      for item in self.sublist:
-         old_obj=item.getObject()
-         if old_obj in liste:
-            pos=liste.index(old_obj)
-            sublist[pos]=item
-         else:
-            pass # objets supprimes ignores
-
-      # ajout des items lies aux nouveaux objets
-      pos=0
-      for obj in liste:
-         if sublist[pos] is None:
-            # nouvel objet : on cree un nouvel item
-            def setFunction(value, object=obj):
-                object.setval(value)
-            item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
-            sublist[pos]=item
-         pos=pos+1
-
-      self.sublist=sublist
-      return self.sublist
-
-  def isValid(self):
-      return self.object.isValid()
-
-  def isCopiable(self):
-      """
-      Retourne 1 si l'objet est copiable, 0 sinon
-      """
-      return 1
-
-  def updateDeplace(self,item):
-      if item.sd and item.sd.nom:
-         self.object.sd=item.sd
-         self.object.sd.nom=item.sd.nom
-
-  def update(self,item):
-      if item.sd and item.sd.nom:
-         self.nommeSd(item.sd.nom)
-
-  def nommeSd(self,nom):
-      """ Lance la méthode de nommage de la SD """
-      oldnom=""
-      if self.object.sd != None :
-         oldnom=self.object.sd.nom
-      test,mess= self.object.nommeSd(nom)
-      if test:self.object.parent.resetContext()
-      if (test and oldnom in self.appliEficas.dict_reels ):
-              self.appliEficas.dict_reels[nom]=self.appliEficas.dict_reels[oldnom]
-      return test,mess
-
-  def isReentrant(self):
-      return self.object.isReentrant()
-    
-  def getNomsSdOperReentrant(self):
-      return self.object.getNomsSdOperReentrant()
-
-  def getObjetCommentarise(self):
-      """
-          Cette méthode retourne un objet commentarisé
-          représentatif de self.object
-      """
-      # Format de fichier utilisé
-      format=self.appliEficas.formatFichierIn
-      return self.object.getObjetCommentarise(format)
-
-  def getObjetCommentarise_BAK(self):
-      """
-          Cette méthode retourne un objet commentarisé
-          représentatif de self.object
-      """
-      import generator,Accas
-      # Format de fichier utilisé
-      format=self.appliEficas.format_fichier
-      g=generator.plugins[format]()
-      texte_commande = g.gener(self.object,format='beautifie')
-      # Il faut enlever la premiere ligne vide de texte_commande que 
-      # rajoute le generator
-      rebut,texte_commande = texte_commande.split('\n',1)
-      # on construit l'objet COMMANDE_COMM repésentatif de self mais non 
-      # enregistré dans le jdc
-      commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non',
-                                             parent=self.object.parent)
-      commande_comment.niveau = self.object.niveau
-      commande_comment.jdc = commande_comment.parent = self.object.jdc
-
-      pos=self.object.parent.etapes.index(self.object)
-      parent=self.object.parent
-      self.object.parent.suppEntite(self.object)
-      parent.addEntite(commande_comment,pos)
-
-      return commande_comment
+        #  return self.labeltext,None,None
+        #else:
+        #  return self.labeltext, None, None #CS_pbruno todo
+
+    #def get_objet(self,name) :
+    #    for v in self.object.mcListe:
+    #        if v.nom == name : return v
+    #    return None
+
  # def getType_sd_prod(self):
  #     """
  #        Retourne le nom du type du concept résultat de l'étape
  #     """
  #     sd_prod=self.object.getType_produit()
  #     if sd_prod:
  #        return sd_prod.__name__
  #     else:
  #        return ""
+
+    def addItem(self,name,pos):
+        mcent = self._object.addEntite(name,pos)
+        return mcent
+
+
+    def suppItem(self,item) :
+        # item : item du MOCLE de l'ETAPE a supprimer
+        # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList
+        itemobject=item.getObject()
+        if itemobject.isOblig() :
+            return (0,tr('Impossible de supprimer un mot-clef obligatoire '))
+        if self.object.suppEntite(itemobject):
+            message = tr("Mot-clef %s supprime " , itemobject.nom)
+            return (1,message)
+        else :
+            return (0,tr('Pb interne : impossible de supprimer ce mot-clef'))
+
+    def getText(self):
+        try:
+            return self.object.getSdname()
+        except:
+            return ''
+
+    # PNPN ????
+    #def keys(self):
+    #    keys=self.object.mc_dict
+    #    return keys
+
+    def getSubList(self):
+        """
+           Reactualise la liste des items fils stockes dans self.sublist
+        """
+        if self.isActif():
+            liste=self.object.mcListe
+        else:
+            liste=[]
+
+        sublist=[None]*len(liste)
+        # suppression des items lies aux objets disparus
+        for item in self.sublist:
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
+
+        # ajout des items lies aux nouveaux objets
+        pos=0
+        for obj in liste:
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object.setval(value)
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                sublist[pos]=item
+            pos=pos+1
+
+        self.sublist=sublist
+        return self.sublist
+
+    def isValid(self):
+        return self.object.isValid()
+
+    def isCopiable(self):
+        """
+        Retourne 1 si l'objet est copiable, 0 sinon
+        """
+        return 1
+
+    def updateDeplace(self,item):
+        if item.sd and item.sd.nom:
+            self.object.sd=item.sd
+            self.object.sd.nom=item.sd.nom
+
+    def update(self,item):
+        if item.sd and item.sd.nom:
+            self.nommeSd(item.sd.nom)
+
+    def nommeSd(self,nom):
+        """ Lance la méthode de nommage de la SD """
+        oldnom=""
+        if self.object.sd != None :
+            oldnom=self.object.sd.nom
+        test,mess= self.object.nommeSd(nom)
+        if test:self.object.parent.resetContext()
+        if (test and oldnom in self.appliEficas.dict_reels ):
+            self.appliEficas.dict_reels[nom]=self.appliEficas.dict_reels[oldnom]
+        return test,mess
+
+    def isReentrant(self):
+        return self.object.isReentrant()
+
+    def getNomsSdOperReentrant(self):
+        return self.object.getNomsSdOperReentrant()
+
+    def getObjetCommentarise(self):
+        """
+            Cette méthode retourne un objet commentarisé
+            représentatif de self.object
+        """
+        # Format de fichier utilisé
+        format=self.appliEficas.formatFichierIn
+        return self.object.getObjetCommentarise(format)
+
+    def getObjetCommentarise_BAK(self):
+        """
+            Cette méthode retourne un objet commentarisé
+            représentatif de self.object
+        """
+        import generator,Accas
+        # Format de fichier utilisé
+        format=self.appliEficas.format_fichier
+        g=generator.plugins[format]()
+        texte_commande = g.gener(self.object,format='beautifie')
+        # Il faut enlever la premiere ligne vide de texte_commande que
+        # rajoute le generator
+        rebut,texte_commande = texte_commande.split('\n',1)
+        # on construit l'objet COMMANDE_COMM repésentatif de self mais non
+        # enregistré dans le jdc
+        commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non',
+                                               parent=self.object.parent)
+        commande_comment.niveau = self.object.niveau
+        commande_comment.jdc = commande_comment.parent = self.object.jdc
+
+        pos=self.object.parent.etapes.index(self.object)
+        parent=self.object.parent
+        self.object.parent.suppEntite(self.object)
+        parent.addEntite(commande_comment,pos)
+
+        return commande_comment
 
 
 import Accas
 treeitem = EtapeTreeItem
-objet = Accas.ETAPE    
-
+objet = Accas.ETAPE
index 74a442386d818a6f9c9731e9d9765b2f62a22439..4260d050a844abbab3cf3c45b8d2aee8b9fc885d 100644 (file)
@@ -24,7 +24,7 @@
 """
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 
@@ -38,10 +38,10 @@ from . import browser
 from . import typeNode
 
 
-class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): 
+class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
     def getPanel(self):
-        """        
-        """    
+        """
+        """
         from .monWidgetParam  import MonWidgetParam
         return MonWidgetParam(self, self.editor,self.item.object)
 
@@ -61,26 +61,26 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
     """
     itemNode=Node
 
-    def init(self):      
-      self.setFunction = self.setValeur
+    def init(self):
+        self.setFunction = self.setValeur
 
 # ---------------------------------------------------------------------------
-#                   API du PARAMETRE pour l'arbre 
+#                   API du PARAMETRE pour l'arbre
 # ---------------------------------------------------------------------------
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone associee au noeud qui porte self,
-      dependant de la validite de l'objet
-      NB : un PARAMETRE est toujours valide ...
-      """
-      if self.isActif():
-          if self.isValid():
-              return "ast-green-square"
-          else:
-              return "ast-red-square"
-      else:
-          return "ast-white-square"
+        """
+        Retourne le nom de l'icone associee au noeud qui porte self,
+        dependant de la validite de l'objet
+        NB : un PARAMETRE est toujours valide ...
+        """
+        if self.isActif():
+            if self.isValid():
+                return "ast-green-square"
+            else:
+                return "ast-red-square"
+        else:
+            return "ast-white-square"
 
     def getLabelText(self):
         """ Retourne 3 valeurs :
@@ -88,68 +88,68 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
         - la fonte dans laquelle afficher ce texte
         - la couleur du texte
         """
-        return tr('PARAMETRE'),None,None 
+        return tr('PARAMETRE'),None,None
 
     def getText(self):
-      """
-      Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre')
-      Ce texte est tronque a 25 caracteres
-      """
-      texte=self.object.nom+"="+str(self.object.valeur)
-      if type(self.object.valeur) == list :
-          texte=self.nom+' = ['
-          for l in self.object.valeur :
-            texte=texte+str(l) +","
-          texte=texte[0:-1]+']'
-      texte = texte.split('\n')[0]
-      if len(texte) < 25 :
-          return texte
-      else :
-          return texte[0:24]+'...'
+        """
+        Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre')
+        Ce texte est tronque a 25 caracteres
+        """
+        texte=self.object.nom+"="+str(self.object.valeur)
+        if type(self.object.valeur) == list :
+            texte=self.nom+' = ['
+            for l in self.object.valeur :
+                texte=texte+str(l) +","
+            texte=texte[0:-1]+']'
+        texte = texte.split('\n')[0]
+        if len(texte) < 25 :
+            return texte
+        else :
+            return texte[0:24]+'...'
 
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      """
-      return []
-    
+        """
+        Retourne la liste des fils de self
+        """
+        return []
+
 # ---------------------------------------------------------------------------
 #       Methodes permettant la modification et la lecture des attributs
 #       du parametre = API graphique du PARAMETRE pour Panel et EFICAS
 # ---------------------------------------------------------------------------
 
     def getValeur(self):
-      """
-      Retourne la valeur de l'objet PARAMETRE cad son texte
-      """
-      if self.object.valeur is None: return ''
-      else: return self.object.valeur 
+        """
+        Retourne la valeur de l'objet PARAMETRE cad son texte
+        """
+        if self.object.valeur is None: return ''
+        else: return self.object.valeur
 
     def getNom(self):
-      """
-      Retourne le nom du parametre
-      """
-      return self.object.nom
+        """
+        Retourne le nom du parametre
+        """
+        return self.object.nom
 
     def setValeur(self,new_valeur):
-      """
-      Affecte valeur a l'objet PARAMETRE
-      """
-      self.object.setValeur(new_valeur)
+        """
+        Affecte valeur a l'objet PARAMETRE
+        """
+        self.object.setValeur(new_valeur)
 
     def setNom(self,new_nom):
-      """
-      Renomme le parametre
-      """
-      self.object.setNom(new_nom)
-      #self.object.setAttribut('nom',new_nom)
+        """
+        Renomme le parametre
+        """
+        self.object.setNom(new_nom)
+        #self.object.setAttribut('nom',new_nom)
 
     def getFr(self):
-      """
-      Retourne le fr associe au parametre, cad la bulle d'aide pour EFICAS
-      """
-      return tr("Definition d'un parametre")
-    
+        """
+        Retourne le fr associe au parametre, cad la bulle d'aide pour EFICAS
+        """
+        return tr("Definition d'un parametre")
+
 import Extensions.parametre
 treeitem =PARAMTreeItem
 objet = Extensions.parametre.PARAMETRE
index dcbea7f040ee74f565848f24e3f7cad74aed5e86..4fd30296525e3a5825c7bc9a1ee14b82a12483b3 100644 (file)
@@ -37,8 +37,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNode):
 
 class ProcEtapeTreeItem(compooper.EtapeTreeItem):
     itemNode=Node
-  
+
 import Accas
 treeitem = ProcEtapeTreeItem
-objet = Accas.PROC_ETAPE    
-
+objet = Accas.PROC_ETAPE
index d7b1f019a09d58d5e7771fd11cc6672dcade1297..9b211a894e5faaa95af1035fd51f78b6c291a958 100644 (file)
@@ -21,7 +21,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -37,8 +37,8 @@ from Noyau.N_CR   import justifyText
 from Accas        import SalomeEntry
 from Accas        import UserASSD
 from Accas        import UserASSDMultiple
-    
-class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):    
+
+class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
@@ -50,779 +50,778 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
         monObjet=self.item.object
         monNom=self.item.nom
 
-        # label informatif 
+        # label informatif
         if monObjet.isInformation():
-          from InterfaceQT4.monWidgetInfo import MonWidgetInfo
-          widget=MonWidgetInfo(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          self.widget=widget
-          return widget
+            from InterfaceQT4.monWidgetInfo import MonWidgetInfo
+            widget=MonWidgetInfo(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            self.widget=widget
+            return widget
 
 
-      # Attention l ordre des if est important
-      # Attention il faut gerer les blocs et les facteurs 
-      # a gerer comme dans composimp
-      # Gestion des matrices
+        # Attention l ordre des if est important
+        # Attention il faut gerer les blocs et les facteurs
+        # a gerer comme dans composimp
+        # Gestion des matrices
         if self.item.waitMatrice ():
-          from InterfaceQT4.monWidgetMatrice import MonWidgetMatrice
-          widget=MonWidgetMatrice(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          self.widget=widget
-          return widget
+            from InterfaceQT4.monWidgetMatrice import MonWidgetMatrice
+            widget=MonWidgetMatrice(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            self.widget=widget
+            return widget
 
-        #print "____________________________", monNom, self.item.waitCo() 
-        #print "____________________________", monNom, self.item.waitAssd() 
+        #print "____________________________", monNom, self.item.waitCo()
+        #print "____________________________", monNom, self.item.waitAssd()
         # Gestion d'une seule valeur (eventuellement un tuple ou un complexe)
         if maDefinition.into != [] and maDefinition.into != None:
-            if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into() 
+            if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into()
             else : monInto = maDefinition.into
 
 
         if maDefinition.max == 1 :
 
         # A verifier
-          if maDefinition.intoSug != [] and maDefinition.intoSug != None:
-            from InterfaceQT4.monWidgetCBIntoSug import MonWidgetCBIntoSug
-            widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif  maDefinition.into != [] and maDefinition.into != None:
-            if maDefinition.fenetreIhm=='menuDeroulant' :
-              from InterfaceQT4.monWidgetCB import MonWidgetCB
-              widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(monInto) < 4 :
-              from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButton
-              widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(monInto) < 7 :
-              from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButton
-              widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else :
-              from InterfaceQT4.monWidgetCB import MonWidgetCB
-              widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitBool() :
-            from InterfaceQT4.monWidgetSimpBool import MonWidgetSimpBool
-            widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitFichier():
-            from InterfaceQT4.monWidgetSimpFichier import MonWidgetSimpFichier
-            widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          # PNPNPN - a faire
-          elif self.item.waitDate():
-            from InterfaceQT4.monWidgetDate import MonWidgetDate
-            widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitHeure():
-            from InterfaceQT4.monWidgetHeure import MonWidgetHeure
-            widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitTuple() :
-            num=self.item.object.definition.type[0].ntuple
-            nomDeLaClasse = 'MonWidgetSimpTuple'+str(num)
-            nomDuFichier  = 'InterfaceQT4.monWidgetSimpTupleN'
-            try :
-            #if 1 :
-               _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
-               #print (_temp)
-               MonWidgetSimpTuple =  getattr(_temp,nomDeLaClasse)
-            except :
-               print ("Pas de Tuple de longueur : ", num)
-            #   print ("Prevenir la maintenance ")
-            widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitComplex():
-            from InterfaceQT4.monWidgetSimpComplexe import MonWidgetSimpComplexe
-            widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitCo():
-            if len(self.item.getSdAvantDuBonType()) == 0 :
-               from InterfaceQT4.monWidgetUniqueSDCO import MonWidgetUniqueSDCO
-               widget=MonWidgetUniqueSDCO(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else :      
-               from InterfaceQT4.monWidgetSDCOInto import MonWidgetSDCOInto
-               widget=MonWidgetSDCOInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitAssd():
-            
-            # PN - pour ne pas appeller trop souvent self.item.getSdAvantDuBonType()
-            if not (self.item.waitUserAssdOrAssdMultipleEnCreation()) : maListe=self.item.getSdAvantDuBonType()
-            if self.item.waitUserAssdOrAssdMultipleEnCreation() : 
-               from InterfaceQT4.monWidgetCreeUserAssd import MonWidgetCreeUserAssd
-               widget=MonWidgetCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            #elif len(self.item.getSdAvantDuBonType()) == 0 :
-            elif len(maListe) == 0 :
-               from InterfaceQT4.monWidgetVide import MonWidgetVide
-               widget=MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            #elif len(self.item.getSdAvantDuBonType()) < 4 :
-            elif len(maListe) < 4 :
-              from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButtonSD
-              widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            #elif len(self.item.getSdAvantDuBonType()) < 7 :
-            elif len(maListe) < 7 :
-              from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButtonSD
-              widget=MonWidget4a6RadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            if maDefinition.intoSug != [] and maDefinition.intoSug != None:
+                from InterfaceQT4.monWidgetCBIntoSug import MonWidgetCBIntoSug
+                widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif  maDefinition.into != [] and maDefinition.into != None:
+                if maDefinition.fenetreIhm=='menuDeroulant' :
+                    from InterfaceQT4.monWidgetCB import MonWidgetCB
+                    widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif len(monInto) < 4 :
+                    from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButton
+                    widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif len(monInto) < 7 :
+                    from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButton
+                    widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetCB import MonWidgetCB
+                    widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitBool() :
+                from InterfaceQT4.monWidgetSimpBool import MonWidgetSimpBool
+                widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitFichier():
+                from InterfaceQT4.monWidgetSimpFichier import MonWidgetSimpFichier
+                widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            # PNPNPN - a faire
+            elif self.item.waitDate():
+                from InterfaceQT4.monWidgetDate import MonWidgetDate
+                widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitHeure():
+                from InterfaceQT4.monWidgetHeure import MonWidgetHeure
+                widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitTuple() :
+                num=self.item.object.definition.type[0].ntuple
+                nomDeLaClasse = 'MonWidgetSimpTuple'+str(num)
+                nomDuFichier  = 'InterfaceQT4.monWidgetSimpTupleN'
+                try :
+                #if 1 :
+                    _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
+                    #print (_temp)
+                    MonWidgetSimpTuple =  getattr(_temp,nomDeLaClasse)
+                except :
+                    print ("Pas de Tuple de longueur : ", num)
+                #   print ("Prevenir la maintenance ")
+                widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitComplex():
+                from InterfaceQT4.monWidgetSimpComplexe import MonWidgetSimpComplexe
+                widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitCo():
+                if len(self.item.getSdAvantDuBonType()) == 0 :
+                    from InterfaceQT4.monWidgetUniqueSDCO import MonWidgetUniqueSDCO
+                    widget=MonWidgetUniqueSDCO(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetSDCOInto import MonWidgetSDCOInto
+                    widget=MonWidgetSDCOInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitAssd():
+
+                # PN - pour ne pas appeller trop souvent self.item.getSdAvantDuBonType()
+                if not (self.item.waitUserAssdOrAssdMultipleEnCreation()) : maListe=self.item.getSdAvantDuBonType()
+                if self.item.waitUserAssdOrAssdMultipleEnCreation() :
+                    from InterfaceQT4.monWidgetCreeUserAssd import MonWidgetCreeUserAssd
+                    widget=MonWidgetCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                #elif len(self.item.getSdAvantDuBonType()) == 0 :
+                elif len(maListe) == 0 :
+                    from InterfaceQT4.monWidgetVide import MonWidgetVide
+                    widget=MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                #elif len(self.item.getSdAvantDuBonType()) < 4 :
+                elif len(maListe) < 4 :
+                    from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButtonSD
+                    widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                #elif len(self.item.getSdAvantDuBonType()) < 7 :
+                elif len(maListe) < 7 :
+                    from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButtonSD
+                    widget=MonWidget4a6RadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetCB import MonWidgetCBSD
+                    widget=MonWidgetCBSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif  self.item.waitSalome() and self.editor.salome:
+                from InterfaceQT4.monWidgetSimpSalome import MonWidgetSimpSalome
+                widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitTxm():
+                from InterfaceQT4.monWidgetSimpTxt import MonWidgetSimpTxt
+                widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
-              from InterfaceQT4.monWidgetCB import MonWidgetCBSD
-              widget=MonWidgetCBSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          
-          elif  self.item.waitSalome() and self.editor.salome:
-            from InterfaceQT4.monWidgetSimpSalome import MonWidgetSimpSalome
-            widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitTxm():
-            from InterfaceQT4.monWidgetSimpTxt import MonWidgetSimpTxt
-            widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          else :
-            from InterfaceQT4.monWidgetSimpBase import MonWidgetSimpBase
-            widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                from InterfaceQT4.monWidgetSimpBase import MonWidgetSimpBase
+                widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
 
         # Gestion des listes
         else :
-          if maDefinition.intoSug != [] and maDefinition.intoSug != None:
-               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                 from InterfaceQT4.monWidgetIntoSug import MonWidgetIntoSug
-                 widget=MonWidgetIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          #if maDefinition.into != [] and maDefinition.into != None:
-          # Attention pas fini --> on attend une liste de ASSD avec ordre
-          elif self.item.waitAssd() and self.item.isListSansOrdreNiDoublon():
-               listeAAfficher = self.item.getSdAvantDuBonType()
-               if len(listeAAfficher) == 0:
-                 from InterfaceQT4.monWidgetVide import MonWidgetVide
-                 widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                 from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
-                 widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitAssd()  and not self.item.waitUserAssdOrAssdMultipleEnCreation() :
-               listeAAfficher = self.item.getSdAvantDuBonType()
-               # a changer selon UserASSD ou UserASSDMultiple
-               mctype=maDefinition.type[0]
-               enable_salome_selection = self.editor.salome and \
-                      (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
-                      (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
-               if enable_salome_selection:
-                  from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
-                  widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               elif len(listeAAfficher) == 0:
-                 from InterfaceQT4.monWidgetVide import MonWidgetVide
-                 widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                 from InterfaceQT4.monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne
-                 widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlieASSD
-                  widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitTuple() :
-            if self.item.object.definition.fenetreIhm == 'Tableau' :
-               from InterfaceQT4.monWidgetTableau import MonWidgetTableau
-               widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else  :
-               num=self.item.object.definition.type[0].ntuple
-               nomDeLaClasse = 'MonWidgetPlusieursTuple'+str(num)
-               nomDuFichier  = 'InterfaceQT4.monWidgetPlusieursTupleN'
-               try:
-                  _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
-                  MonWidgetPlusieursTuple =  getattr(_temp,nomDeLaClasse)
-               except :
-                  print ("Pas de Tuple de longueur : ", num)
-                  print ("Prevenir la maintenance ")
-               widget=MonWidgetPlusieursTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.hasInto():
-            if self.item.isListSansOrdreNiDoublon():
-               
-               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                  from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
-                  widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else :
-               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                  from InterfaceQT4.monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
-                  widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          else :
-            if self.item.waitUserAssdOrAssdMultipleEnCreation() : 
-               from InterfaceQT4.monWidgetPlusieursCreeUserAssd import MonWidgetPlusieursCreeUserAssd
-               widget=MonWidgetPlusieursCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees)  : 
-               from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
-               widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            if maDefinition.intoSug != [] and maDefinition.intoSug != None:
+                if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                    from InterfaceQT4.monWidgetIntoSug import MonWidgetIntoSug
+                    widget=MonWidgetIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                    widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            #if maDefinition.into != [] and maDefinition.into != None:
+            # Attention pas fini --> on attend une liste de ASSD avec ordre
+            elif self.item.waitAssd() and self.item.isListSansOrdreNiDoublon():
+                listeAAfficher = self.item.getSdAvantDuBonType()
+                if len(listeAAfficher) == 0:
+                    from InterfaceQT4.monWidgetVide import MonWidgetVide
+                    widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
+                    widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitAssd()  and not self.item.waitUserAssdOrAssdMultipleEnCreation() :
+                listeAAfficher = self.item.getSdAvantDuBonType()
+                # a changer selon UserASSD ou UserASSDMultiple
+                mctype=maDefinition.type[0]
+                enable_salome_selection = self.editor.salome and \
+                       (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
+                       (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
+                if enable_salome_selection:
+                    from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
+                    widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif len(listeAAfficher) == 0:
+                    from InterfaceQT4.monWidgetVide import MonWidgetVide
+                    widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                    from InterfaceQT4.monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne
+                    widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlieASSD
+                    widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitTuple() :
+                if self.item.object.definition.fenetreIhm == 'Tableau' :
+                    from InterfaceQT4.monWidgetTableau import MonWidgetTableau
+                    widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else  :
+                    num=self.item.object.definition.type[0].ntuple
+                    nomDeLaClasse = 'MonWidgetPlusieursTuple'+str(num)
+                    nomDuFichier  = 'InterfaceQT4.monWidgetPlusieursTupleN'
+                    try:
+                        _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
+                        MonWidgetPlusieursTuple =  getattr(_temp,nomDeLaClasse)
+                    except :
+                        print ("Pas de Tuple de longueur : ", num)
+                        print ("Prevenir la maintenance ")
+                    widget=MonWidgetPlusieursTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.hasInto():
+                if self.item.isListSansOrdreNiDoublon():
+
+                    if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                        from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
+                        widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                    else :
+                        from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                        widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                        from InterfaceQT4.monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
+                        widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                    else :
+                        from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                        widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
-               from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-               widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                if self.item.waitUserAssdOrAssdMultipleEnCreation() :
+                    from InterfaceQT4.monWidgetPlusieursCreeUserAssd import MonWidgetPlusieursCreeUserAssd
+                    widget=MonWidgetPlusieursCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees)  :
+                    from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
+                    widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                    widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
 
         self.widget=widget
         return widget
-         
-    
+
+
 class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
-  itemNode=Node
-
-  def init(self) :
-      self.expandable = 0
-  
-
-  #-----------------------------------------------
-  #
-  # Methodes liees aux informations sur le Panel
-  # ou au mot-clef simple
-  #
-  #-----------------------------------------------
-  # isList
-  # hasInto
-  # getMinMax
-  # getMultiplicite
-  # getIntervalle
-  # getListeValeurs
-  # getListePossible
-
-  def isList(self):
-      """
-          Cette methode indique si le mot cle simple attend une liste (valeur de retour 1)
-          ou s'il n'en attend pas (valeur de retour 0)
-
-          Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
-          Dans le cas sans validateur, l'information est donnee par l'attribut max
-          de la definition du mot cle.
-          Dans le cas avec validateur, il faut combiner l'information precedente avec
-          celle issue de l'appel de la methode isList sur le validateur.On utilisera
-          l'operateur ET pour effectuer cette combinaison (AndVal).
-      """
-      is_a_list=0
-      min,max = self.getMinMax()
-      assert (min <= max)
-      if max > 1 :
-                is_a_list=1
-      # Dans le cas avec validateurs, pour que le mot cle soit considere
-      # comme acceptant une liste, il faut que max soit superieur a 1
-      # ET que la methode isList du validateur retourne 1. Dans les autres cas
-      # on retournera 0 (n'attend pas de liste)
-      if self.definition.validators :
-         is_a_list= self.definition.validators.isList() * is_a_list
-      return is_a_list 
-
-  def isListSansOrdreNiDoublon(self):
-      if self.definition.homo=="SansOrdreNiDoublon" : return 1
-      return 0 
-
-
-  def hasInto(self):
-      """
-          Cette methode indique si le mot cle simple propose un choix (valeur de retour 1)
-          ou s'il n'en propose pas (valeur de retour 0)
-
-          Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
-          Dans le cas sans validateur, l'information est donnee par l'attribut into
-          de la definition du mot cle.
-          Dans le cas avec validateurs, pour que le mot cle soit considere
-          comme proposant un choix, il faut que into soit present OU
-          que la methode hasInto du validateur retourne 1. Dans les autres cas
-          on retournera 0 (ne propose pas de choix)
-      """
-      has_an_into=0
-      if self.definition.into:
-               has_an_into=1
-      elif self.definition.validators :
-         has_an_into= self.definition.validators.hasInto()
-      return has_an_into
-
-  def hasIntoSug(self):
-      if self.definition.intoSug: return 1
-      return 0
-
-
-  def getMinMax(self):
-      """ Retourne les valeurs min et max de la definition de object """
-      return self.object.getMinMax()
-
-  def getMultiplicite(self):
-      """ A preciser.
-          Retourne la multiplicite des valeurs affectees a l'objet
-          represente par l'item. Pour le moment retourne invariablement 1.
-      """
-      return 1
-
-  def getIntervalle(self):
-      """ 
-           Retourne le domaine de valeur attendu par l'objet represente 
-           par l'item.
-      """
-      return self.object.getintervalle()
-
-  def getListeValeurs(self) :
-      """ Retourne la liste des valeurs de object """
-      valeurs=self.object.getListeValeurs()
-      try :
-        if "R" in self.object.definition.type:
-           clef=self.object.getNomConcept()
-           if clef in self.appliEficas.dict_reels:
-              if type(valeurs) == tuple:
-                 valeurs_reelles=[]
-                 for val in valeurs :
-                    if val in self.appliEficas.dict_reels[clef]:
-                       valeurs_reelles.append(self.appliEficas.dict_reels[clef][val])
+    itemNode=Node
+
+    def init(self) :
+        self.expandable = 0
+
+
+    #-----------------------------------------------
+    #
+    # Methodes liees aux informations sur le Panel
+    # ou au mot-clef simple
+    #
+    #-----------------------------------------------
+    # isList
+    # hasInto
+    # getMinMax
+    # getMultiplicite
+    # getIntervalle
+    # getListeValeurs
+    # getListePossible
+
+    def isList(self):
+        """
+            Cette methode indique si le mot cle simple attend une liste (valeur de retour 1)
+            ou s'il n'en attend pas (valeur de retour 0)
+
+            Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
+            Dans le cas sans validateur, l'information est donnee par l'attribut max
+            de la definition du mot cle.
+            Dans le cas avec validateur, il faut combiner l'information precedente avec
+            celle issue de l'appel de la methode isList sur le validateur.On utilisera
+            l'operateur ET pour effectuer cette combinaison (AndVal).
+        """
+        is_a_list=0
+        min,max = self.getMinMax()
+        assert (min <= max)
+        if max > 1 :
+            is_a_list=1
+        # Dans le cas avec validateurs, pour que le mot cle soit considere
+        # comme acceptant une liste, il faut que max soit superieur a 1
+        # ET que la methode isList du validateur retourne 1. Dans les autres cas
+        # on retournera 0 (n'attend pas de liste)
+        if self.definition.validators :
+            is_a_list= self.definition.validators.isList() * is_a_list
+        return is_a_list
+
+    def isListSansOrdreNiDoublon(self):
+        if self.definition.homo=="SansOrdreNiDoublon" : return 1
+        return 0
+
+
+    def hasInto(self):
+        """
+            Cette methode indique si le mot cle simple propose un choix (valeur de retour 1)
+            ou s'il n'en propose pas (valeur de retour 0)
+
+            Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
+            Dans le cas sans validateur, l'information est donnee par l'attribut into
+            de la definition du mot cle.
+            Dans le cas avec validateurs, pour que le mot cle soit considere
+            comme proposant un choix, il faut que into soit present OU
+            que la methode hasInto du validateur retourne 1. Dans les autres cas
+            on retournera 0 (ne propose pas de choix)
+        """
+        has_an_into=0
+        if self.definition.into:
+            has_an_into=1
+        elif self.definition.validators :
+            has_an_into= self.definition.validators.hasInto()
+        return has_an_into
+
+    def hasIntoSug(self):
+        if self.definition.intoSug: return 1
+        return 0
+
+
+    def getMinMax(self):
+        """ Retourne les valeurs min et max de la definition de object """
+        return self.object.getMinMax()
+
+    def getMultiplicite(self):
+        """ A preciser.
+            Retourne la multiplicite des valeurs affectees a l'objet
+            represente par l'item. Pour le moment retourne invariablement 1.
+        """
+        return 1
+
+    def getIntervalle(self):
+        """
+             Retourne le domaine de valeur attendu par l'objet represente
+             par l'item.
+        """
+        return self.object.getintervalle()
+
+    def getListeValeurs(self) :
+        """ Retourne la liste des valeurs de object """
+        valeurs=self.object.getListeValeurs()
+        try :
+            if "R" in self.object.definition.type:
+                clef=self.object.getNomConcept()
+                if clef in self.appliEficas.dict_reels:
+                    if type(valeurs) == tuple:
+                        valeurs_reelles=[]
+                        for val in valeurs :
+                            if val in self.appliEficas.dict_reels[clef]:
+                                valeurs_reelles.append(self.appliEficas.dict_reels[clef][val])
+                            else :
+                                valeurs_reelles.append(val)
                     else :
-                       valeurs_reelles.append(val)
-              else :
-                 if valeurs in self.appliEficas.dict_reels[clef]:
-                    valeurs_reelles=self.appliEficas.dict_reels[clef][valeurs]
-              valeurs=valeurs_reelles
-      except :
-        pass
-      return valeurs
-    
-  def getListePossible(self,listeActuelle=[]):
-      if hasattr(self.definition.validators,'into'):
-         valeurspossibles = self.definition.validators.into 
-      else:
-         valeurspossibles = self.get_definition().into
-
-      if listeActuelle==[] : return valeurspossibles
-
-      #On ne garde que les items valides
-      listevalideitem=[]
-      if type(valeurspossibles) in (list,tuple) :
-         pass
-      else :
-         valeurspossibles=(valeurspossibles,)
-      for item in valeurspossibles:
-          encorevalide=self.valideItem(item)
-          if encorevalide :
-             listevalideitem.append(item)
-
-      #on ne garde que les choix possibles qui passent le test de valideListePartielle
-      listevalideliste=[]
-      for item in listevalideitem:
-          encorevalide=self.valideListePartielle(item,listeActuelle)
-          if encorevalide :
-              listevalideliste.append(item)
-      #print listevalideliste
-      return listevalideliste
-
-  def getListePossibleAvecSug(self,listeActuelle=[]):
-      if hasattr(self.definition,'intoSug'):
-         valeurspossibles = self.definition.intoSug 
-      else:
-         return listeActuelle
-
-      if listeActuelle==[] :  return valeurspossibles
-      valeurspossibles = valeurspossibles+listeActuelle
-
-      #On ne garde que les items valides
-      listevalideitem=[]
-      if type(valeurspossibles) in (list,tuple) :
-         pass
-      else :
-         valeurspossibles=(valeurspossibles,)
-      for item in valeurspossibles:
-          encorevalide=self.valideItem(item)
-          if encorevalide :
-             listevalideitem.append(item)
-
-      #on ne garde que les choix possibles qui passent le test de valideListePartielle
-      listevalideliste=[]
-      for item in listevalideitem:
-          encorevalide=self.valideListePartielle(item,listeActuelle)
-          if encorevalide :
-              listevalideliste.append(item)
-      return listevalideliste
-
-  def getListeParamPossible(self):
-      liste_param=[]
-      l1,l2=self.jdc.getParametresFonctionsAvantEtape(self.getEtape())
-      for param in self.object.jdc.params:
-          if param.nom not in l1 : continue
-          encorevalide=self.valideItem(param.valeur)
-          if encorevalide:
-             type_param=param.valeur.__class__.__name__
-             for typ in self.definition.type:
-                 if typ=='R':
-                     liste_param.append(param)
-                 if typ=='I' and type_param=='int':
-                     liste_param.append(param)
-                 if typ=='TXM' and type_param=='str':
-                     liste_param.append(repr(param))
-                 if ('grma' in repr(typ)) and type_param=='str':
-                     liste_param.append(param.nom)
-      return liste_param
-
-  #--------------------------------------------------
-  #
-  # Methodes liees a la validite des valeurs saisies
-  #
-  #---------------------------------------------------
-  # valideItem
-  # valideListePartielle
-  # valideListeComplete
-  # infoErreurItem
-  # infoErreurListe
-  # isInIntervalle
-  # isValid
-
-  def valideItem(self,item):
-      """
-        La validation est realisee directement par l'objet
-      """
-      return self.object.valideItem(item)
-     
-  def valideListePartielle(self,item,listecourante):
-      #On protege la liste en entree en la copiant
-      valeur=list(listecourante)
-      if item : valeur.append(item)
-      return self.object.validValeurPartielle(valeur)
-
-  def valideListeComplete (self,valeur):
-      return self.object.validValeur(valeur)
-
-  def infoErreurItem(self) :
-      commentaire=""
-      if self.definition.validators :
-         commentaire=self.definition.validators.infoErreurItem()
-      return commentaire
-      
-  def aide(self) :
-      commentaire=""
-      if self.definition.validators :
-         commentaire=self.definition.validators.aide()
-      return commentaire
-
-  def infoErreurListe(self) :
-      commentaire=""
-      if self.definition.validators :
-         commentaire=self.definition.validators.infoErreurListe()
-      return commentaire
-
-  def isInIntervalle(self,valeur):
-      """ 
-          Retourne 1 si la valeur est dans l'intervalle permis par
-          l'objet represente par l'item.
-      """
-      return self.valideItem(valeur)
-
-  def isValid(self):
-    valide=self.object.isValid()
-    return valide
-
-  #--------------------------------------------------
-  #
-  # Autres ...
-  #
-  #---------------------------------------------------
-  # getIconName
-  # getText
-  # setValeurCo
-  # getSdAvantDuBonType
-
-
-  def getIconName(self):
-    if self.appliEficas.maConfiguration.differencieSiDefaut and self.isValid():
-      if self.object.definition.defaut != None :
-         if self.object.valeur == self.object.definition.defaut : return "ast-green-dark-ball"
-         if self.object.definition.max > 1 and list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball"
-      return "ast-green-ball"
-    elif self.isValid():
-      return "ast-green-ball"
-    elif self.object.isOblig():
-      return "ast-red-ball"
-    else:
-      return "ast-yel-ball"
-
-  def getText(self):
-    """
-    Classe SIMPTreeItem
-    Retourne le texte a afficher dans l'arbre representant la valeur de l'objet
-    pointe par self 
-    """
-    text= self.object.getText()
-    if text == None : text=""
-    return text
-    
-
-  def setValeurCo(self,nomCo):
-      """
-      Affecte au MCS pointe par self l'objet de type CO et de nom nom_co
-      """
-      ret = self.object.setValeurCo(nomCo)
-      #print "setValeurCo",ret
-      return ret
-      
-  def getSdAvantDuBonType(self):
-      """
-      Retourne la liste des noms des SD presentes avant l'etape qui contient
-      le MCS pointe par self et du type requis par ce MCS
-      """
-      # A changer pour tenir compte des UserASSDMultiple
-      # ici on passe par parent pour avoir le bon type  
-      #if  self.waitUserAssdMultiple() : 
-      #    l=self.object.parent.getSdCreeParObjetAvecFiltre(self.object)
-      #    return l
-      if  self.waitUserAssdMultiple() : 
-          l=self.object.getUserAssdPossible()
-          return l
-      a=self.object.etape.parent.getSdAvantDuBonType(self.object.etape,self.object.definition.type)
-      if self.waitUserAssd() : l=self.jdc.getSdCreeParObjet(self.object.definition.type)
-      else :l=[]
-      return a+l
-
-  def getSdAvantDuBonTypePourTypeDeBase(self):
-      a=self.object.jdc.getSdAvantDuBonTypePourTypeDe_Base(self.object.etape,"LASSD")
-      return a
-
-  def deleteValeurCo(self,valeur=None):
-      """
-           Supprime la valeur du mot cle (de type CO)
-           il faut propager la destruction aux autres etapes
-      """
-      if not valeur : valeur=self.object.valeur
-      # XXX faut il vraiment appeler delSdprod ???
-      #self.object.etape.parent.delSdprod(valeur)
-      self.object.etape.parent.deleteConcept(valeur)
-
-  #-----------------------------------------------
-  #
-  # Methodes liees au type de l objet attendu
-  #
-  #-----------------------------------------------
-  # waitCo 
-  # waitGeom
-  # waitComplex
-  # waitReel
-  # waitAssd
-  # getType
-
-  def waitCo(self):
-      """
-      Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un objet de type ASSD qui n'existe pas encore (type CO()),
-      0 sinon
-      """
-      return self.object.waitCo()
-
-  def waitFichier(self):
-      maDefinition=self.object.definition
-      try : 
-        if ('Repertoire' in maDefinition.type[0]) or ('Fichier' in maDefinition.type[0]) :
-           return 1
-      except :
-           return 0
-
-  def waitGeom(self):
-      """
-      Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un objet GEOM, 0 sinon
-      """
-      return self.object.waitGeom()
-
-  def waitTxm(self):
-     return self.object.waitTxm()
-
-    
-  def waitComplex(self):
-      """ Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un complexe, 0 sinon """
-      if 'C' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-
-  def waitReel(self):
-      """ Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un reel, 0 sinon """
-      if 'R' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-
-  def waitTuple(self) :
-      return  self.object.waitTuple()
-
-  def waitDate(self):
-      """ Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un reel, 0 sinon """
-      if 'DateHHMMAAAA' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-        
-  def waitHeure(self):
-      """ Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un reel, 0 sinon """
-      if 'HeureHHMMSS' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-        
-        
-        
-  def waitTuple(self):
-      """ Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un Tuple, 0 sinon """
-      for ss_type in self.object.definition.type:
-          if repr(ss_type).find('Tuple') != -1 :
-             return 1
-      return 0
-
-  def waitMatrice(self):
-      """ Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un Tuple, 0 sinon """
-      for ss_type in self.object.definition.type:
-          if repr(ss_type).find('Matrice') != -1 :
-             return 1
-      return 0
-
-  def waitAssd(self):
-      """Methode booleenne qui retourne 1 si l'objet pointe par self
-      attend un objet de type ASSD ou derive, 0 sinon """
-      return self.object.waitAssd()
-    
-  def waitAssdOrTypeBase(self) :
-      boo=0
-      if len(self.object.definition.type) > 1 :
-         if self.waitReel() :
-            boo = 1
-         if 'I' in self.object.definition.type :
-            boo = 1
-      return boo
-
-  def waitSalome(self):
-      monType = self.object.definition.type[0]
-      if 'grma' in repr(monType) : return True
-      if 'grno' in repr(monType) : return True
-      try :
-         if issubclass(monType, SalomeEntry) : return True
-      except :
-         pass
-      return False
-   
-  def getType(self):
-      """ 
-          Retourne le type de valeur attendu par l'objet represente par l'item.
-      """
-      return self.object.getType()
-
-  #-----------------------------------------------------
-  #
-  # Methodes liees  a l evaluation de la valeur saisie
-  #
-  #-----------------------------------------------------
-  # evalValeur
-  # evalValeurItem
-  # isCO
-  # traiteReel
-
-  def evalValeur(self,valeur):
-      """ Lance l'interpretation de 'valeur' (chaine de caracteres) comme valeur de self :
-             - retourne l'objet associe si on a pu interpreter (entier, reel, ASSD,...)
-             - retourne 'valeur' (chaine de caracteres) sinon
-      """
-      newvaleur=self.evalVal(valeur)
-      return newvaleur,1
-
-
-  def evalValeurItem(self,valeur):
-      """ Lance l'interpretation de 'valeur' qui doit ne pas etre un tuple 
-          - va retourner la valeur de retour et la validite
-            selon le type de l objet attendu
-          - traite les reels et les parametres 
-      """ 
-      #print "evalValeurItem",valeur
-      if valeur==None or valeur == "" :
-         return None,0
-      validite=1
-      if self.waitReel():
-             valeurinter = self.traiteReel(valeur)
-             if valeurinter != None :
+                        if valeurs in self.appliEficas.dict_reels[clef]:
+                            valeurs_reelles=self.appliEficas.dict_reels[clef][valeurs]
+                    valeurs=valeurs_reelles
+        except :
+            pass
+        return valeurs
+
+    def getListePossible(self,listeActuelle=[]):
+        if hasattr(self.definition.validators,'into'):
+            valeurspossibles = self.definition.validators.into
+        else:
+            valeurspossibles = self.get_definition().into
+
+        if listeActuelle==[] : return valeurspossibles
+
+        #On ne garde que les items valides
+        listevalideitem=[]
+        if type(valeurspossibles) in (list,tuple) :
+            pass
+        else :
+            valeurspossibles=(valeurspossibles,)
+        for item in valeurspossibles:
+            encorevalide=self.valideItem(item)
+            if encorevalide :
+                listevalideitem.append(item)
+
+        #on ne garde que les choix possibles qui passent le test de valideListePartielle
+        listevalideliste=[]
+        for item in listevalideitem:
+            encorevalide=self.valideListePartielle(item,listeActuelle)
+            if encorevalide :
+                listevalideliste.append(item)
+        #print listevalideliste
+        return listevalideliste
+
+    def getListePossibleAvecSug(self,listeActuelle=[]):
+        if hasattr(self.definition,'intoSug'):
+            valeurspossibles = self.definition.intoSug
+        else:
+            return listeActuelle
+
+        if listeActuelle==[] :  return valeurspossibles
+        valeurspossibles = valeurspossibles+listeActuelle
+
+        #On ne garde que les items valides
+        listevalideitem=[]
+        if type(valeurspossibles) in (list,tuple) :
+            pass
+        else :
+            valeurspossibles=(valeurspossibles,)
+        for item in valeurspossibles:
+            encorevalide=self.valideItem(item)
+            if encorevalide :
+                listevalideitem.append(item)
+
+        #on ne garde que les choix possibles qui passent le test de valideListePartielle
+        listevalideliste=[]
+        for item in listevalideitem:
+            encorevalide=self.valideListePartielle(item,listeActuelle)
+            if encorevalide :
+                listevalideliste.append(item)
+        return listevalideliste
+
+    def getListeParamPossible(self):
+        liste_param=[]
+        l1,l2=self.jdc.getParametresFonctionsAvantEtape(self.getEtape())
+        for param in self.object.jdc.params:
+            if param.nom not in l1 : continue
+            encorevalide=self.valideItem(param.valeur)
+            if encorevalide:
+                type_param=param.valeur.__class__.__name__
+                for typ in self.definition.type:
+                    if typ=='R':
+                        liste_param.append(param)
+                    if typ=='I' and type_param=='int':
+                        liste_param.append(param)
+                    if typ=='TXM' and type_param=='str':
+                        liste_param.append(repr(param))
+                    if ('grma' in repr(typ)) and type_param=='str':
+                        liste_param.append(param.nom)
+        return liste_param
+
+    #--------------------------------------------------
+    #
+    # Methodes liees a la validite des valeurs saisies
+    #
+    #---------------------------------------------------
+    # valideItem
+    # valideListePartielle
+    # valideListeComplete
+    # infoErreurItem
+    # infoErreurListe
+    # isInIntervalle
+    # isValid
+
+    def valideItem(self,item):
+        """
+          La validation est realisee directement par l'objet
+        """
+        return self.object.valideItem(item)
+
+    def valideListePartielle(self,item,listecourante):
+        #On protege la liste en entree en la copiant
+        valeur=list(listecourante)
+        if item : valeur.append(item)
+        return self.object.validValeurPartielle(valeur)
+
+    def valideListeComplete (self,valeur):
+        return self.object.validValeur(valeur)
+
+    def infoErreurItem(self) :
+        commentaire=""
+        if self.definition.validators :
+            commentaire=self.definition.validators.infoErreurItem()
+        return commentaire
+
+    def aide(self) :
+        commentaire=""
+        if self.definition.validators :
+            commentaire=self.definition.validators.aide()
+        return commentaire
+
+    def infoErreurListe(self) :
+        commentaire=""
+        if self.definition.validators :
+            commentaire=self.definition.validators.infoErreurListe()
+        return commentaire
+
+    def isInIntervalle(self,valeur):
+        """
+            Retourne 1 si la valeur est dans l'intervalle permis par
+            l'objet represente par l'item.
+        """
+        return self.valideItem(valeur)
+
+    def isValid(self):
+        valide=self.object.isValid()
+        return valide
+
+    #--------------------------------------------------
+    #
+    # Autres ...
+    #
+    #---------------------------------------------------
+    # getIconName
+    # getText
+    # setValeurCo
+    # getSdAvantDuBonType
+
+
+    def getIconName(self):
+        if self.appliEficas.maConfiguration.differencieSiDefaut and self.isValid():
+            if self.object.definition.defaut != None :
+                if self.object.valeur == self.object.definition.defaut : return "ast-green-dark-ball"
+                if self.object.definition.max > 1 and list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball"
+            return "ast-green-ball"
+        elif self.isValid():
+            return "ast-green-ball"
+        elif self.object.isOblig():
+            return "ast-red-ball"
+        else:
+            return "ast-yel-ball"
+
+    def getText(self):
+        """
+        Classe SIMPTreeItem
+        Retourne le texte a afficher dans l'arbre representant la valeur de l'objet
+        pointe par self
+        """
+        text= self.object.getText()
+        if text == None : text=""
+        return text
+
+
+    def setValeurCo(self,nomCo):
+        """
+        Affecte au MCS pointe par self l'objet de type CO et de nom nom_co
+        """
+        ret = self.object.setValeurCo(nomCo)
+        #print "setValeurCo",ret
+        return ret
+
+    def getSdAvantDuBonType(self):
+        """
+        Retourne la liste des noms des SD presentes avant l'etape qui contient
+        le MCS pointe par self et du type requis par ce MCS
+        """
+        # A changer pour tenir compte des UserASSDMultiple
+        # ici on passe par parent pour avoir le bon type
+        #if  self.waitUserAssdMultiple() :
+        #    l=self.object.parent.getSdCreeParObjetAvecFiltre(self.object)
+        #    return l
+        if  self.waitUserAssdMultiple() :
+            l=self.object.getUserAssdPossible()
+            return l
+        a=self.object.etape.parent.getSdAvantDuBonType(self.object.etape,self.object.definition.type)
+        if self.waitUserAssd() : l=self.jdc.getSdCreeParObjet(self.object.definition.type)
+        else :l=[]
+        return a+l
+
+    def getSdAvantDuBonTypePourTypeDeBase(self):
+        a=self.object.jdc.getSdAvantDuBonTypePourTypeDe_Base(self.object.etape,"LASSD")
+        return a
+
+    def deleteValeurCo(self,valeur=None):
+        """
+             Supprime la valeur du mot cle (de type CO)
+             il faut propager la destruction aux autres etapes
+        """
+        if not valeur : valeur=self.object.valeur
+        # XXX faut il vraiment appeler delSdprod ???
+        #self.object.etape.parent.delSdprod(valeur)
+        self.object.etape.parent.deleteConcept(valeur)
+
+    #-----------------------------------------------
+    #
+    # Methodes liees au type de l objet attendu
+    #
+    #-----------------------------------------------
+    # waitCo
+    # waitGeom
+    # waitComplex
+    # waitReel
+    # waitAssd
+    # getType
+
+    def waitCo(self):
+        """
+        Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un objet de type ASSD qui n'existe pas encore (type CO()),
+        0 sinon
+        """
+        return self.object.waitCo()
+
+    def waitFichier(self):
+        maDefinition=self.object.definition
+        try :
+            if ('Repertoire' in maDefinition.type[0]) or ('Fichier' in maDefinition.type[0]) :
+                return 1
+        except :
+            return 0
+
+    def waitGeom(self):
+        """
+        Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un objet GEOM, 0 sinon
+        """
+        return self.object.waitGeom()
+
+    def waitTxm(self):
+        return self.object.waitTxm()
+
+
+    def waitComplex(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un complexe, 0 sinon """
+        if 'C' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+    def waitReel(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un reel, 0 sinon """
+        if 'R' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+    def waitTuple(self) :
+        return  self.object.waitTuple()
+
+    def waitDate(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un reel, 0 sinon """
+        if 'DateHHMMAAAA' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+    def waitHeure(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un reel, 0 sinon """
+        if 'HeureHHMMSS' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+
+
+    def waitTuple(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un Tuple, 0 sinon """
+        for ss_type in self.object.definition.type:
+            if repr(ss_type).find('Tuple') != -1 :
+                return 1
+        return 0
+
+    def waitMatrice(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un Tuple, 0 sinon """
+        for ss_type in self.object.definition.type:
+            if repr(ss_type).find('Matrice') != -1 :
+                return 1
+        return 0
+
+    def waitAssd(self):
+        """Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un objet de type ASSD ou derive, 0 sinon """
+        return self.object.waitAssd()
+
+    def waitAssdOrTypeBase(self) :
+        boo=0
+        if len(self.object.definition.type) > 1 :
+            if self.waitReel() :
+                boo = 1
+            if 'I' in self.object.definition.type :
+                boo = 1
+        return boo
+
+    def waitSalome(self):
+        monType = self.object.definition.type[0]
+        if 'grma' in repr(monType) : return True
+        if 'grno' in repr(monType) : return True
+        try :
+            if issubclass(monType, SalomeEntry) : return True
+        except :
+            pass
+        return False
+
+    def getType(self):
+        """
+            Retourne le type de valeur attendu par l'objet represente par l'item.
+        """
+        return self.object.getType()
+
+    #-----------------------------------------------------
+    #
+    # Methodes liees  a l evaluation de la valeur saisie
+    #
+    #-----------------------------------------------------
+    # evalValeur
+    # evalValeurItem
+    # isCO
+    # traiteReel
+
+    def evalValeur(self,valeur):
+        """ Lance l'interpretation de 'valeur' (chaine de caracteres) comme valeur de self :
+               - retourne l'objet associe si on a pu interpreter (entier, reel, ASSD,...)
+               - retourne 'valeur' (chaine de caracteres) sinon
+        """
+        newvaleur=self.evalVal(valeur)
+        return newvaleur,1
+
+
+    def evalValeurItem(self,valeur):
+        """ Lance l'interpretation de 'valeur' qui doit ne pas etre un tuple
+            - va retourner la valeur de retour et la validite
+              selon le type de l objet attendu
+            - traite les reels et les parametres
+        """
+        #print "evalValeurItem",valeur
+        if valeur==None or valeur == "" :
+            return None,0
+        validite=1
+        if self.waitReel():
+            valeurinter = self.traiteReel(valeur)
+            if valeurinter != None :
                 valeurretour,validite= self.object.evalValeur(valeurinter)
-             else:
+            else:
                 valeurretour,validite= self.object.evalValeur(valeur)
-      elif self.waitGeom():
-             valeurretour,validite = valeur,1
-      else :
-             valeurretour,validite= self.object.evalValeur(valeur)
-
-      if validite == 0:
-         if (type(valeur) == bytes  or type(valeur) == str )and self.object.waitTxm():
-            essai_valeur="'" + valeur + "'"
-            valeurretour,validite= self.object.evalValeur(essai_valeur)
-
-      if hasattr(valeurretour,'__class__'):
-         #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
-         if valeurretour.__class__.__name__ in ('PARAMETRE',):
-            validite=1
-
-      #if self.waitCo():
-         # CCAR : il ne faut pas essayer de creer un concept
-         # il faut simplement en chercher un existant ce qui a du etre fait par self.object.evalValeur(valeur)
-         #try:
-            #valeurretour=Accas.CO(valeur)
-         #except:
-            #valeurretour=None
-            #validite=0
-      # on est dans le cas ou on a evalue et ou on n'aurait pas du
-      if self.object.waitTxm() :
-          if type(valeurretour) != bytes:
-             valeurretour=str(valeur)
-             validite=1
-      return valeurretour,validite
-      
-  def isCO(self,valeur=None):
-      """
-         Indique si valeur est un concept produit de la macro
-         Cette methode n'a de sens que pour un MCSIMP d'une MACRO
-         Si valeur vaut None on teste la valeur du mot cle
-      """
-      # Pour savoir si un concept est un nouveau concept de macro
-      # on regarde s'il est present dans l'attribut sdprods de l'etape
-      # ou si son nom de classe est CO.
-      # Il faut faire les 2 tests car une macro non valide peut etre
-      # dans un etat pas tres catholique avec des CO pas encore types
-      # et donc pas dans sdprods (resultat d'une exception dans typeSDProd)
-      if not valeur:valeur=self.object.valeur
-      if valeur in self.object.etape.sdprods:return 1
-      #if type(valeur) is not types.InstanceType:return 0
-      if type(valeur) is not object:return 0
-      if valeur.__class__.__name__ == 'CO':return 1
-      return 0
-
-  def isParam(self,valeur) :
-      for param in self.jdc.params:
-          if (repr(param) == valeur):
-             return 1
-      return 0
-
-  def traiteReel(self,valeur):
-      """
-      Cette fonction a pour but de rajouter le '.' en fin de chaine pour un reel
-      ou de detecter si on fait reference a un concept produit par DEFI_VALEUR
-      ou un EVAL ...
-      """
-      valeur = valeur.strip()
-      liste_reels = self.getSdAvantDuBonType()
-      if valeur in liste_reels:
-          return valeur
-      if len(valeur) >= 3 :
-          if valeur[0:4] == 'EVAL' :
-              # on a trouve un EVAL --> on retourne directement la valeur
-              return valeur
-      if valeur.find('.') == -1 :
-          # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
-          if (self.isParam(valeur)):
-              return valeur
-          else:
-              if valeur.find('e') != -1:
-                 # Notation scientifique ?
-                 try :
-                    r=eval(valeur)
-                    return valeur
-                 except :
-                    return None
-              else :
-                 return valeur+'.'
-      else:
-          return valeur
-        
+        elif self.waitGeom():
+            valeurretour,validite = valeur,1
+        else :
+            valeurretour,validite= self.object.evalValeur(valeur)
+
+        if validite == 0:
+            if (type(valeur) == bytes  or type(valeur) == str )and self.object.waitTxm():
+                essai_valeur="'" + valeur + "'"
+                valeurretour,validite= self.object.evalValeur(essai_valeur)
+
+        if hasattr(valeurretour,'__class__'):
+            #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
+            if valeurretour.__class__.__name__ in ('PARAMETRE',):
+                validite=1
+
+        #if self.waitCo():
+            # CCAR : il ne faut pas essayer de creer un concept
+            # il faut simplement en chercher un existant ce qui a du etre fait par self.object.evalValeur(valeur)
+            #try:
+                #valeurretour=Accas.CO(valeur)
+            #except:
+                #valeurretour=None
+                #validite=0
+        # on est dans le cas ou on a evalue et ou on n'aurait pas du
+        if self.object.waitTxm() :
+            if type(valeurretour) != bytes:
+                valeurretour=str(valeur)
+                validite=1
+        return valeurretour,validite
+
+    def isCO(self,valeur=None):
+        """
+           Indique si valeur est un concept produit de la macro
+           Cette methode n'a de sens que pour un MCSIMP d'une MACRO
+           Si valeur vaut None on teste la valeur du mot cle
+        """
+        # Pour savoir si un concept est un nouveau concept de macro
+        # on regarde s'il est present dans l'attribut sdprods de l'etape
+        # ou si son nom de classe est CO.
+        # Il faut faire les 2 tests car une macro non valide peut etre
+        # dans un etat pas tres catholique avec des CO pas encore types
+        # et donc pas dans sdprods (resultat d'une exception dans typeSDProd)
+        if not valeur:valeur=self.object.valeur
+        if valeur in self.object.etape.sdprods:return 1
+        #if type(valeur) is not types.InstanceType:return 0
+        if type(valeur) is not object:return 0
+        if valeur.__class__.__name__ == 'CO':return 1
+        return 0
+
+    def isParam(self,valeur) :
+        for param in self.jdc.params:
+            if (repr(param) == valeur):
+                return 1
+        return 0
+
+    def traiteReel(self,valeur):
+        """
+        Cette fonction a pour but de rajouter le '.' en fin de chaine pour un reel
+        ou de detecter si on fait reference a un concept produit par DEFI_VALEUR
+        ou un EVAL ...
+        """
+        valeur = valeur.strip()
+        liste_reels = self.getSdAvantDuBonType()
+        if valeur in liste_reels:
+            return valeur
+        if len(valeur) >= 3 :
+            if valeur[0:4] == 'EVAL' :
+                # on a trouve un EVAL --> on retourne directement la valeur
+                return valeur
+        if valeur.find('.') == -1 :
+            # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
+            if (self.isParam(valeur)):
+                return valeur
+            else:
+                if valeur.find('e') != -1:
+                    # Notation scientifique ?
+                    try :
+                        r=eval(valeur)
+                        return valeur
+                    except :
+                        return None
+                else :
+                    return valeur+'.'
+        else:
+            return valeur
+
 
 import Accas
 treeitem = SIMPTreeItem
 objet = Accas.MCSIMP
-
index 78d7159679a05b661a54d332420d1a5c4f7ee92c..08627bac9dec89bff04a854aa86371d1467d4002 100644 (file)
@@ -23,9 +23,9 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import range
+    from builtins import object
 except : pass
 
 import os, sys,  types, re
@@ -36,221 +36,221 @@ from Extensions.i18n import tr
 
 class configBase(object):
 
-  #-------------------------------
-  def __init__(self,appliEficas,repIni):
-  #-------------------------------
-
-  # Classe de base permettant de lire, afficher
-  # et sauvegarder les fichiers utilisateurs 
-  # On a deux directories : la directory generale (Repertoire d install + Nom du code
-  #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
-  # et la directorie de l utilisateur 
-  #                      HOME/.Eficas_Openturns
-  # Le fichier prefs.py va etre lu dans la directory generale 
-  #         puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE} 
-  #         par celui de l utilisateur
-  # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
-  # dans le fichier general sinon
-
-      self.appliEficas   = appliEficas  
-      self.code    = appliEficas.code
-      self.salome  = appliEficas.salome
-      if self.salome : self.name="editeur_salome.ini"
-      else           : self.name="editeur.ini"
-      self.rep_mat = None
-      self.repIni  = repIni
-     
-      if self.code == None : self.code=''
-      if sys.platform[0:5]=="linux" :
-              self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
-      else :
-              self.rep_user   = os.path.join('C:/','.config/Eficas',self.code)
-
-
-      self.setValeursParDefaut()
-      
-      if self.code != '' :
-         self.lectureFichierIniStandard()
-         self.lectureFichierIniIntegrateur()
-         self.lectureFichierIniUtilisateur()
-
-      if self.boutonDsMenuBar:
-         self.closeAutreCommande = True
-         self.closeFrameRechercheCommande = True
-
-      #Particularite des schemas MAP
-      if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode)
-
-      #if self.appliEficas: self.parent=appliEficas.top
-      #else:        self.parent=None
-
-      if not os.path.isdir(self.savedir) :
+    #-------------------------------
+    def __init__(self,appliEficas,repIni):
+    #-------------------------------
+
+    # Classe de base permettant de lire, afficher
+    # et sauvegarder les fichiers utilisateurs
+    # On a deux directories : la directory generale (Repertoire d install + Nom du code
+    #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
+    # et la directorie de l utilisateur
+    #                       HOME/.Eficas_Openturns
+    # Le fichier prefs.py va etre lu dans la directory generale
+    #         puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE}
+    #         par celui de l utilisateur
+    # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
+    # dans le fichier general sinon
+
+        self.appliEficas   = appliEficas
+        self.code    = appliEficas.code
+        self.salome  = appliEficas.salome
+        if self.salome : self.name="editeur_salome.ini"
+        else           : self.name="editeur.ini"
+        self.rep_mat = None
+        self.repIni  = repIni
+
+        if self.code == None : self.code=''
+        if sys.platform[0:5]=="linux" :
+            self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
+        else :
+            self.rep_user   = os.path.join('C:/','.config/Eficas',self.code)
+
+
+        self.setValeursParDefaut()
+
+        if self.code != '' :
+            self.lectureFichierIniStandard()
+            self.lectureFichierIniIntegrateur()
+            self.lectureFichierIniUtilisateur()
+
+        if self.boutonDsMenuBar:
+            self.closeAutreCommande = True
+            self.closeFrameRechercheCommande = True
+
+        #Particularite des schemas MAP
+        if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode)
+
+        #if self.appliEficas: self.parent=appliEficas.top
+        #else:         self.parent=None
+
+        if not os.path.isdir(self.savedir) :
+            if sys.platform[0:5]=="linux" :
+                self.savedir=os.environ['HOME']
+            else:
+                self.savedir='C:/'
+
+
+
+    def setValeursParDefaut(self):
+    #-----------------------------
+
+        # Valeurs par defaut
+        if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user)
+        self.path_doc     = os.path.abspath(os.path.join(self.repIni,'..','Doc'))
+        self.exec_acrobat = 'acroread'
+        nomDir="Eficas_"+self.code
         if sys.platform[0:5]=="linux" :
-          self.savedir=os.environ['HOME']
+            self.savedir   = os.path.abspath(os.path.join(os.environ['HOME'],nomDir))
         else:
-          self.savedir='C:/'
-      
-
-
-  def setValeursParDefaut(self):
-  #-----------------------------
-  
-      # Valeurs par defaut
-      if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user)
-      self.path_doc     = os.path.abspath(os.path.join(self.repIni,'..','Doc'))
-      self.exec_acrobat = 'acroread'
-      nomDir="Eficas_"+self.code
-      if sys.platform[0:5]=="linux" :
-        self.savedir   = os.path.abspath(os.path.join(os.environ['HOME'],nomDir))
-      else:
-        self.savedir = os.path.abspath('C:/')
-      self.modeNouvCommande='initial'
-      self.affiche="alpha"
-      self.closeAutreCommande = False
-      self.closeFrameRechercheCommande = False
-      self.closeFrameRechercheCommandeSurPageDesCommandes = False
-      self.closeEntete = False
-      self.closeArbre = False
-      self.demandeLangue=False
-      self.suiteTelemac=False
-      self.nombreDeBoutonParLigne=0
-      self.translatorFichier=None
-      self.dicoImages= {}
-      self.dicoIcones= {}
-      self.afficheCommandesPliees = True
-      self.afficheFirstPlies =  False
-      self.simpleClic = False
-      self.afficheOptionnelVide=False
-      self.afficheListesPliees=True
-      self.boutonDsMenuBar=False
-      self.ficIcones=None
-      self.repIcones=None
-      self.differencieSiDefaut=False
-      self.typeDeCata='Python'
-      self.closeParenthese=False
-      self.closeOptionnel=False
-      self.afficheFactOptionnel=False
-      self.enleverActionStructures=False
-      self.enleverPoubellePourCommande=False
-      self.enleverParametres=False
-      self.enleverSupprimer=False
-      self.ajoutExecution=False
-      self.utilParExtensions=[]
-      self.rendVisiblesLesCaches=False
-      self.pasDeMCOptionnels=False
-
-      self.dumpXSD=False
-      self.withXSD=False
-      self.afficheIhm=True
-
-
-
-  #--------------------------------------
-  def lectureFichierIniStandard(self):
-  #--------------------------------------
-
-      name='prefs_'+self.appliEficas.code
-      try :
-        prefsCode=__import__(name)
-      except :
-        self.catalogues=[]
-        print ('pas de fichier de prefs')
-        return
-      for k in dir(prefsCode):
-          if (k[0:1] != "__" and k[-1:-2] !='__'):
-             valeur=getattr(prefsCode,k)
-             setattr(self,k,valeur)
-       
-
-
-  #--------------------------------------
-  def lectureFichierIniIntegrateur(self):
-  #--------------------------------------
-  # Verifie l'existence du fichier "standard"
-  # appelle la lecture de ce fichier
-      clef="PREFS_CATA_"+self.code
-      try :
-        repIntegrateur=os.path.abspath(os.environ[clef])
-      except :
-        return
-      
-      fic_ini_integrateur=os.path.join(repIntegrateur,self.name)
-      if not os.path.isfile(fic_ini_integrateur): return
-      txt = read_file(fic_ini_integrateur)
-      d=locals()
-      try:
-         exec(txt, d)
-      except :
-         try :
-           from PyQt5.QtWidgets import QMessageBox
-           QMessageBox.critical( None, tr("Import du fichier de Configuration"), 
-                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
-         except : 
-           print("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))
-         return
-      self.labels_eficas.append('rep_aide')
-      for k in self.labels_eficas :
-         try :
-            setattr(self,k,d[k])
-         except :
-            pass
-      #Glut pour les repertoires materiaux
-      #et pour la doc
-      for k in d :
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
-             setattr(self,k,d[k])
-
-
-  #--------------------------------------
-  def lectureFichierIniUtilisateur(self):
-  #--------------------------------------
-  # Surcharge les parametres standards par les parametres utilisateur s'ils existent
-      self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name)
-      if not os.path.isfile(self.fic_ini_utilisateur): return
-
-      txt = read_file(self.fic_ini_utilisateur)
-      d=locals()
-      try:
-         exec(txt, d)
-      except :
-         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
-         try :
-           from PyQt5.QtWidgets import QMessageBox
-           QMessageBox.critical( None, tr("Import du fichier de Configuration"), 
-                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
-         except :
-            print ("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))
-      for k in self.labels_user :
-         try :
-            setattr(self,k,d[k])
-         except :
-            pass
-      for k in d :
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
-             setattr(self,k,d[k])
-
-  #--------------------------------------
-  def saveParams(self):
-  #--------------------------------------
-  # sauvegarde
-  # les nouveaux parametres dans le fichier de configuration utilisateur
-  #
-      texte=""
-      for clef in self.labels_user :
-          if hasattr(self,clef):
-             valeur=getattr(self,clef)
-             texte= texte + clef+"     = " + repr(valeur) +"\n"
-      #Glut pour les repertoires materiaux
-      #et pour la doc
-      for k in dir(self):
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
-             valeur=getattr(self,k)
-             texte= texte + k+"        = " + repr(valeur) +"\n"
-
-      f=open(self.fic_ini_utilisateur,'w+')
-      f.write(texte) 
-      f.close()
+            self.savedir = os.path.abspath('C:/')
+        self.modeNouvCommande='initial'
+        self.affiche="alpha"
+        self.closeAutreCommande = False
+        self.closeFrameRechercheCommande = False
+        self.closeFrameRechercheCommandeSurPageDesCommandes = False
+        self.closeEntete = False
+        self.closeArbre = False
+        self.demandeLangue=False
+        self.suiteTelemac=False
+        self.nombreDeBoutonParLigne=0
+        self.translatorFichier=None
+        self.dicoImages= {}
+        self.dicoIcones= {}
+        self.afficheCommandesPliees = True
+        self.afficheFirstPlies =  False
+        self.simpleClic = False
+        self.afficheOptionnelVide=False
+        self.afficheListesPliees=True
+        self.boutonDsMenuBar=False
+        self.ficIcones=None
+        self.repIcones=None
+        self.differencieSiDefaut=False
+        self.typeDeCata='Python'
+        self.closeParenthese=False
+        self.closeOptionnel=False
+        self.afficheFactOptionnel=False
+        self.enleverActionStructures=False
+        self.enleverPoubellePourCommande=False
+        self.enleverParametres=False
+        self.enleverSupprimer=False
+        self.ajoutExecution=False
+        self.utilParExtensions=[]
+        self.rendVisiblesLesCaches=False
+        self.pasDeMCOptionnels=False
+
+        self.dumpXSD=False
+        self.withXSD=False
+        self.afficheIhm=True
+
+
+
+
+    #--------------------------------------
+    def lectureFichierIniStandard(self):
+    #--------------------------------------
+
+        name='prefs_'+self.appliEficas.code
+        try :
+            prefsCode=__import__(name)
+        except :
+            self.catalogues=[]
+            print ('pas de fichier de prefs')
+            return
+        for k in dir(prefsCode):
+            if (k[0:1] != "__" and k[-1:-2] !='__'):
+                valeur=getattr(prefsCode,k)
+                setattr(self,k,valeur)
+
+
+
+    #--------------------------------------
+    def lectureFichierIniIntegrateur(self):
+    #--------------------------------------
+    # Verifie l'existence du fichier "standard"
+    # appelle la lecture de ce fichier
+        clef="PREFS_CATA_"+self.code
+        try :
+            repIntegrateur=os.path.abspath(os.environ[clef])
+        except :
+            return
+
+        fic_ini_integrateur=os.path.join(repIntegrateur,self.name)
+        if not os.path.isfile(fic_ini_integrateur): return
+        txt = read_file(fic_ini_integrateur)
+        d=locals()
+        try:
+            exec(txt, d)
+        except :
+            try :
+                from PyQt5.QtWidgets import QMessageBox
+                QMessageBox.critical( None, tr("Import du fichier de Configuration"),
+                             tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
+            except :
+                print("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))
+            return
+        self.labels_eficas.append('rep_aide')
+        for k in self.labels_eficas :
+            try :
+                setattr(self,k,d[k])
+            except :
+                pass
+        #Glut pour les repertoires materiaux
+        #et pour la doc
+        for k in d :
+            if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+                setattr(self,k,d[k])
+
+
+    #--------------------------------------
+    def lectureFichierIniUtilisateur(self):
+    #--------------------------------------
+    # Surcharge les parametres standards par les parametres utilisateur s'ils existent
+        self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name)
+        if not os.path.isfile(self.fic_ini_utilisateur): return
+
+        txt = read_file(self.fic_ini_utilisateur)
+        d=locals()
+        try:
+            exec(txt, d)
+        except :
+            l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+            try :
+                from PyQt5.QtWidgets import QMessageBox
+                QMessageBox.critical( None, tr("Import du fichier de Configuration"),
+                             tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
+            except :
+                print ("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))
+        for k in self.labels_user :
+            try :
+                setattr(self,k,d[k])
+            except :
+                pass
+        for k in d :
+            if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+                setattr(self,k,d[k])
+
+    #--------------------------------------
+    def saveParams(self):
+    #--------------------------------------
+    # sauvegarde
+    # les nouveaux parametres dans le fichier de configuration utilisateur
+    #
+        texte=""
+        for clef in self.labels_user :
+            if hasattr(self,clef):
+                valeur=getattr(self,clef)
+                texte= texte + clef+"      = " + repr(valeur) +"\n"
+        #Glut pour les repertoires materiaux
+        #et pour la doc
+        for k in dir(self):
+            if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+                valeur=getattr(self,k)
+                texte= texte + k+" = " + repr(valeur) +"\n"
+
+        f=open(self.fic_ini_utilisateur,'w+')
+        f.write(texte)
+        f.close()
 #
 
 
index e9ab3864f9d4754a3d7e64fa826aaff162ce6b05..987b761ac2b2217f95bd56d02b2f1f77f61d563b 100755 (executable)
@@ -20,8 +20,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,sys,os, re
@@ -45,12 +45,12 @@ from InterfaceQT4   import browser
 
 from desBaseWidget    import Ui_baseWidget
 from InterfaceQT4.monViewTexte   import ViewText
-from monWidgetCreeParam import MonWidgetCreeParam 
+from monWidgetCreeParam import MonWidgetCreeParam
 
 DictExtensions= {"MAP" : ".map", "TELEMAC" : '.cas'}
 debug = False
 
-    
+
 from InterfaceQT4.editorSsIhm    import JDCEditorSsIhm
 
 
@@ -82,8 +82,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 
         JDCEditorSsIhm. __init__ (self,appliEficas,fichier, jdc,units,include)
         if self.jdc:
-             comploader.chargerComposants()
-             self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc )
+            comploader.chargerComposants()
+            self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc )
 
 
         # Particularites IHM : met la fenetre a jour
@@ -102,7 +102,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         if self.maConfiguration.closeOptionnel  : self.fermeOptionnel()
         if self.maConfiguration.boutonDsMenuBar : self.appliEficas.remplitIconesCommandes()
 
-     
+
         self.formatFichierOut =  self.appliEficas.formatFichierOut
         self.formatFichierIn  =  self.appliEficas.formatFichierIn
 
@@ -120,11 +120,11 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
 
         if self.appliEficas.readercata.demandeCatalogue==True  :
-           nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.labelCode)
-           if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
-              translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
-              from Extensions import localisation
-              localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
+            nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.labelCode)
+            if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
+                translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
+                from Extensions import localisation
+                localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
 
 
         if self.jdc_item and self.appliEficas.ssIhm==False :
@@ -175,7 +175,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 #   saveFileLegerAs
 
 # ---------------------------------------------
-# Methodes Surchargees 
+# Methodes Surchargees
 # ---------------------------------------------
 
     #-----------------------------------------------------------------------#
@@ -187,20 +187,20 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #--------------------------------#
     def informe(self,titre,txt,critique=True):
     #--------------------------------#
-       if  critique :
-           self.afficheInfos(tr(txt),Qt.red)
-           QMessageBox.critical( self, tr(titre), tr(txt))
-       else :
-           QMessageBox.warning( self, tr(titre),tr(txt))
+        if  critique :
+            self.afficheInfos(tr(txt),Qt.red)
+            QMessageBox.critical( self, tr(titre), tr(txt))
+        else :
+            QMessageBox.warning( self, tr(titre),tr(txt))
 
     #--------------------------------#
     def ajoutCommentaire(self):
     #--------------------------------#
         if self.tree.selectedItems()==[] :
-          QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
-          return 
+            QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
+            return
         noeudAvantCommentaire=self.tree.selectedItems()[0]
-        if noeudAvantCommentaire ==self.tree.racine : 
+        if noeudAvantCommentaire ==self.tree.racine :
             self.tree.racine.appendChild("COMMENTAIRE",pos=0)
             return
         noeudAvantCommentaire.addComment(True)
@@ -224,10 +224,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         self.monExe.closeWriteChannel()
         self.w.exec_()
         try:
-          commande="rm  "+ nomFichier
-          os.system(commande)
+            commande="rm  "+ nomFichier
+            os.system(commande)
         except :
-          pass
+            pass
 
     def readFromStdErr(self):
         a=self.monExe.readAllStandardError()
@@ -237,7 +237,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         a=self.monExe.readAllStandardOutput()
         self.w.view.append(str(a.data()))
 
-        
+
     #-----------------------#
     def gestionParam(self):
     #-----------------------#
@@ -259,11 +259,11 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #----------------------------------------------#
         if couleur=='red' : couleur = Qt.red
         if self.sb:
-           mapalette=self.sb.palette()
-           mapalette.setColor( QPalette.WindowText, couleur )
-           self.sb.setPalette( mapalette );
-           self.sb.showMessage(message,4000)
-           self.couleur=couleur
+            mapalette=self.sb.palette()
+            mapalette.setColor( QPalette.WindowText, couleur )
+            self.sb.setPalette( mapalette );
+            self.sb.showMessage(message,4000)
+            self.couleur=couleur
 
     #------------------------------#
     def afficheAlerte(self,titre,message):
@@ -285,166 +285,166 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #---------------------------------------#
     def chercheNoeudSelectionne(self,copie=1):
     #---------------------------------------#
-      """
-        appele par Cut et Copy pour positionner self.node_selected
-      """
-      self.node_selected=[]
-      if len(self.tree.selectedItems()) == 0 : return
-      self.node_selected=self.tree.selectedItems()
+        """
+          appele par Cut et Copy pour positionner self.node_selected
+        """
+        self.node_selected=[]
+        if len(self.tree.selectedItems()) == 0 : return
+        self.node_selected=self.tree.selectedItems()
 
 
     #---------------------#
     def handleSupprimer(self):
     #---------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      self.QWParent.noeud_a_editer = []
-      if self.node_selected[0]==self.tree.racine: return
-      if len(self.node_selected) == 1 : self.node_selected[0].delete()
-      else : self.node_selected[0].deleteMultiple(self.node_selected)
+        self.chercheNoeudSelectionne()
+        if len(self.node_selected) == 0 : return
+        self.QWParent.noeud_a_editer = []
+        if self.node_selected[0]==self.tree.racine: return
+        if len(self.node_selected) == 1 : self.node_selected[0].delete()
+        else : self.node_selected[0].deleteMultiple(self.node_selected)
 
     #---------------------#
     def handleRechercher(self):
     #---------------------#
-      from .monRecherche import DRecherche
-      monRechercheDialg=DRecherche(parent=self,fl=0)
-      monRechercheDialg.show()
+        from .monRecherche import DRecherche
+        monRechercheDialg=DRecherche(parent=self,fl=0)
+        monRechercheDialg.show()
 
 
     #--------------------------------#
     def handleRechercherDsCatalogue(self):
     #-----------------------------#
-      from .monRechercheCatalogue import DRechercheCatalogue
-      monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
-      monRechercheDialg.show()
+        from .monRechercheCatalogue import DRechercheCatalogue
+        monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
+        monRechercheDialg.show()
 
     #---------------------#
     def handleDeplier(self):
     #---------------------#
-       if self.tree == None : return
-       #self.tree.collapseAll()
-       if self.deplier :
-          #print "je plie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = False
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
-       else:
-          #print "je deplie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = True
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
+        if self.tree == None : return
+        #self.tree.collapseAll()
+        if self.deplier :
+            #print "je plie"
+            self.tree.expandItem(self.tree.topLevelItem(0))
+            self.deplier = False
+            if self.fenetreCentraleAffichee != None  :
+                if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
+                    self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
+        else:
+            #print "je deplie"
+            self.tree.expandItem(self.tree.topLevelItem(0))
+            self.deplier = True
+            if self.fenetreCentraleAffichee != None  :
+                if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
+                    self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
 
     #---------------------#
     def handleEditCut(self):
     #---------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a couper
-      """
-      #print "handleEditCut"
-      self.chercheNoeudSelectionne()
-      self.QWParent.edit="couper"
-      self.QWParent.noeud_a_editer = self.node_selected
+        """
+        Stocke dans Eficas.noeud_a_editer le noeud a couper
+        """
+        #print "handleEditCut"
+        self.chercheNoeudSelectionne()
+        self.QWParent.edit="couper"
+        self.QWParent.noeud_a_editer = self.node_selected
 
     #-----------------------#
     def handleEditCopy(self):
     #-----------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a copier
-      """
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue()
-      else :  self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected)
-      self.QWParent.edit="copier"
-      self.QWParent.noeud_a_editer = self.node_selected
+        """
+        Stocke dans Eficas.noeud_a_editer le noeud a copier
+        """
+        self.chercheNoeudSelectionne()
+        if len(self.node_selected) == 0 : return
+        if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue()
+        else :  self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected)
+        self.QWParent.edit="copier"
+        self.QWParent.noeud_a_editer = self.node_selected
 
     #------------------------#
     def handleEditPaste(self):
     #------------------------#
-      """
-      Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
-      Ne permet que la copie d'objets de type Commande ou MCF
-      """
-      self.chercheNoeudSelectionne()
-      if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0:
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un objet a copier"))
-          return
-      if len(self.node_selected) != 1 :
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
-          return
-      noeudOuColler=self.node_selected[0]
-
-      if len(self.QWParent.noeud_a_editer)!=1:
-         #self.handleEditPasteMultiple()
-         QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
-         return
-
-      noeudACopier=self.QWParent.noeud_a_editer[0]
-
-      if (self.QWParent.edit != "couper"):
-        #print   (noeudOuColler.item.parent.getChild(noeudOuColler.item.nom)) 
-        try:
-           if noeudOuColler == self.tree.racine :
-               child=noeudOuColler.doPastePremier(noeudACopier)
-           else :
-               child=noeudACopier.doPaste(noeudOuColler,'after')
-
-           if child==None or child==0:
-               QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
-               self.message = ''
-               self.afficheInfos("Copie refusee",Qt.red)
-           if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-               try :
-                 nom=noeudACopier.item.sd.nom
-                 child.item.nommeSd(nom)
-               except :
-                 pass
-           return
-           self.initModif()
-           child.select()
-        except  :
-           traceback.print_exc()
-           QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet'))
-           self.message = ''
-           self.afficheInfos("Copie refusee",Qt.red)
-           return
-
-      # il faut declarer le JDCDisplay_courant modifie
-      # suppression eventuelle du noeud selectionne
-      # si possible on renomme l objet comme le noeud couper
-
-      if (self.QWParent.edit == "couper"):
-         if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-           QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
-
-         #if 1:
-         try :
-           # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
-            indexNoeudACopier=self.getTreeIndex(noeudACopier)
-            noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos)
-            noeudACopier.treeParent.buildChildren()
-
-         #else:
-         except:
-            pass
-         self.QWParent.noeud_a_editer=[]
+        """
+        Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
+        Ne permet que la copie d'objets de type Commande ou MCF
+        """
+        self.chercheNoeudSelectionne()
+        if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0:
+            QMessageBox.information( self,
+                        tr("Copie impossible"),
+                        tr("Veuillez selectionner un objet a copier"))
+            return
+        if len(self.node_selected) != 1 :
+            QMessageBox.information( self,
+                        tr("Copie impossible"),
+                        tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
+            return
+        noeudOuColler=self.node_selected[0]
 
-      # on rend la copie a nouveau possible en liberant le flag edit
-      self.QWParent.edit="copier"
-      noeudACopier.select()
+        if len(self.QWParent.noeud_a_editer)!=1:
+            #self.handleEditPasteMultiple()
+            QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
+            return
+
+        noeudACopier=self.QWParent.noeud_a_editer[0]
+
+        if (self.QWParent.edit != "couper"):
+        #print   (noeudOuColler.item.parent.getChild(noeudOuColler.item.nom))
+            try:
+                if noeudOuColler == self.tree.racine :
+                    child=noeudOuColler.doPastePremier(noeudACopier)
+                else :
+                    child=noeudACopier.doPaste(noeudOuColler,'after')
+
+                if child==None or child==0:
+                    QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
+                    self.message = ''
+                    self.afficheInfos("Copie refusee",Qt.red)
+                if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
+                    try :
+                        nom=noeudACopier.item.sd.nom
+                        child.item.nommeSd(nom)
+                    except :
+                        pass
+                return
+                self.initModif()
+                child.select()
+            except  :
+                traceback.print_exc()
+                QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet'))
+                self.message = ''
+                self.afficheInfos("Copie refusee",Qt.red)
+                return
+
+        # il faut declarer le JDCDisplay_courant modifie
+        # suppression eventuelle du noeud selectionne
+        # si possible on renomme l objet comme le noeud couper
+
+        if (self.QWParent.edit == "couper"):
+            if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
+                QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
+
+            #if 1:
+            try :
+                # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
+                indexNoeudACopier=self.getTreeIndex(noeudACopier)
+                noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos)
+                noeudACopier.treeParent.buildChildren()
+
+            #else:
+            except:
+                pass
+            self.QWParent.noeud_a_editer=[]
+
+        # on rend la copie a nouveau possible en liberant le flag edit
+        self.QWParent.edit="copier"
+        noeudACopier.select()
 
     #----------------------------------#
     def handleDeplaceMultiple(self):
     #----------------------------------#
-       pass
+        pass
 
     #----------------------------------#
     def handleEditPasteMultiple(self):
@@ -452,270 +452,270 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 
     # On ne garde que les niveaux "Etape"
     # On insere dans l'ordre du JDC
-     listeNoeudsACouper=[]
-     listeIndex=[]
-     listeChild=[]
-     listeItem=[]
-     from InterfaceQT4 import compojdc
-     noeudOuColler=self.node_selected[0]
-     if not (isinstance(noeudOuColler.treeParent, compojdc.Node)):
-        QMessageBox.information( self,
-                  tr("Copie impossible a cet endroit",),
-                  tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro"))
-        return
-     indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
-
-     for noeud in self.QWParent.noeud_a_editer :
-        if not (isinstance(noeud.treeParent, compojdc.Node)): continue
-        indexInTree=noeud.treeParent.children.index(noeud)
-        indice = 0
+        listeNoeudsACouper=[]
+        listeIndex=[]
+        listeChild=[]
+        listeItem=[]
+        from InterfaceQT4 import compojdc
+        noeudOuColler=self.node_selected[0]
+        if not (isinstance(noeudOuColler.treeParent, compojdc.Node)):
+            QMessageBox.information( self,
+                      tr("Copie impossible a cet endroit",),
+                      tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro"))
+            return
+        indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
+
+        for noeud in self.QWParent.noeud_a_editer :
+            if not (isinstance(noeud.treeParent, compojdc.Node)): continue
+            indexInTree=noeud.treeParent.children.index(noeud)
+            indice = 0
+            for index in listeIndex:
+                if index < indexInTree : indice = indice +1
+            listeIndex.insert(indice, indexInTree)
+            listeNoeudsACouper.insert(indice, noeud)
+
+        noeudJdc=noeudOuColler.treeParent
+        dejaCrees=0
+        # on les cree a l'envers parcequ'on ajoute a NoeudOuColler
+        listeIndex.reverse()
+        for index in listeIndex:
+            indexTravail=index
+            if indexNoeudOuColler < index:
+                indexTravail=indexTravail+dejaCrees
+            noeudOuColler=noeudJdc.children[indexNoeudOuColler]
+            noeud=noeudJdc.children[indexTravail]
+            child=noeud.doPaste(noeudOuColler)
+            listeChild.append(child)
+            dejaCrees=dejaCrees+1
+
+        self.QWParent.noeud_a_editer = []
+        for i in range(len(listeIndex)):
+            noeud=noeudJdc.children[indexNoeudOuColler+1+i]
+            self.QWParent.noeud_a_editer.append(noeud)
+
+        listeASupprimer=[]
+        if self.QWParent.edit !="couper" : return
+
         for index in listeIndex:
-            if index < indexInTree : indice = indice +1
-        listeIndex.insert(indice, indexInTree)
-        listeNoeudsACouper.insert(indice, noeud)
-
-     noeudJdc=noeudOuColler.treeParent
-     dejaCrees=0
-     # on les cree a l'envers parcequ'on ajoute a NoeudOuColler
-     listeIndex.reverse()
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+dejaCrees
-         noeudOuColler=noeudJdc.children[indexNoeudOuColler]
-         noeud=noeudJdc.children[indexTravail]
-         child=noeud.doPaste(noeudOuColler)
-         listeChild.append(child)
-         dejaCrees=dejaCrees+1
-
-     self.QWParent.noeud_a_editer = []
-     for i in range(len(listeIndex)):
-        noeud=noeudJdc.children[indexNoeudOuColler+1+i]
-        self.QWParent.noeud_a_editer.append(noeud)
-
-     listeASupprimer=[]
-     if self.QWParent.edit !="couper" : return
-
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+(len(listeIndex))
-         noeud=noeudJdc.children[indexTravail]
-
-         listeItem.append(noeud.item)
-         listeASupprimer.append(noeud)
-
-     for i in range(len(listeChild)):
-         self.tree.item.suppItem(listeItem[i])
-         listeChild[i].item.update(listeItem[i])
-
-     self.QWParent.noeud_a_editer = []
+            indexTravail=index
+            if indexNoeudOuColler < index:
+                indexTravail=indexTravail+(len(listeIndex))
+            noeud=noeudJdc.children[indexTravail]
+
+            listeItem.append(noeud.item)
+            listeASupprimer.append(noeud)
+
+        for i in range(len(listeChild)):
+            self.tree.item.suppItem(listeItem[i])
+            listeChild[i].item.update(listeItem[i])
+
+        self.QWParent.noeud_a_editer = []
 
     #----------------------------------#
     def handleAjoutEtape(self,nomEtape):
     #----------------------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine : 
-         nodeOuAjouter=self.tree.racine
-         nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first')
-      else :               
-         nodeOuAjouter=self.node_selected[0]
-         if nodeOuAjouter != self.tree.racine :
-            while  nodeOuAjouter.treeParent != self.tree.racine:
-                   nodeOuAjouter=nodeOuAjouter.treeParent
-         nouveau=nodeOuAjouter.appendBrother(nomEtape)
-      try : 
-        self.node_selected[0].setSelected(False)
-      except : pass
-      nouveau.setSelected(True)
-      nouveau.affichePanneau()
+        self.chercheNoeudSelectionne()
+        if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine :
+            nodeOuAjouter=self.tree.racine
+            nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first')
+        else :
+            nodeOuAjouter=self.node_selected[0]
+            if nodeOuAjouter != self.tree.racine :
+                while  nodeOuAjouter.treeParent != self.tree.racine:
+                    nodeOuAjouter=nodeOuAjouter.treeParent
+            nouveau=nodeOuAjouter.appendBrother(nomEtape)
+        try :
+            self.node_selected[0].setSelected(False)
+        except : pass
+        nouveau.setSelected(True)
+        nouveau.affichePanneau()
 
 
     #---------------------------#
     def getFileVariable(self) :
     #---------------------------#
-     titre = tr("Choix d'un fichier XML")
-     texte = tr("Le fichier contient une commande MODEL\n")
-     texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables')
-     QMessageBox.information( self, titre,tr(texte))
+        titre = tr("Choix d'un fichier XML")
+        texte = tr("Le fichier contient une commande MODEL\n")
+        texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables')
+        QMessageBox.information( self, titre,tr(texte))
 
-     fichier = QFileDialog.getOpenFileName(self.appliEficas,
-                   tr('Ouvrir Fichier'),
-                   self.appliEficas.maConfiguration.savedir,
-                   tr('Wrapper Files (*.xml);;''All Files (*)'))
-     return  fichier
+        fichier = QFileDialog.getOpenFileName(self.appliEficas,
+                      tr('Ouvrir Fichier'),
+                      self.appliEficas.maConfiguration.savedir,
+                      tr('Wrapper Files (*.xml);;''All Files (*)'))
+        return  fichier
 
     #------------#
     def run(self):
     #------------#
-      fonction="run"+self.code
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
+        fonction="run"+self.code
+        if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
 
     #------------#
     def saveRun(self):
     #------------#
-      fonction="saveRun"+self.code
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
+        fonction="saveRun"+self.code
+        if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
 
 
 # ---------------------------------------------
-# Methodes Non Crees dans ssIHM 
+# Methodes Non Crees dans ssIHM
 # ---------------------------------------------
     #---------------#
     def runVP(self):
     #---------------#
-      texte=self.getTextJDC("MAPVp",pourRun=1)
-      print (texte)
+        texte=self.getTextJDC("MAPVp",pourRun=1)
+        print (texte)
 
     #---------------#
     def runMAP(self):
     #---------------#
 
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP"))
-         return
-      if len(self.jdc.etapes) != 1 :
-         QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
-         return
-      if self.modified or self.fichier==None  :
-         self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
-         texte=self.getTextJDC("MAP")
-         self.writeFile( self.fichierMapInput, txt = texte)
-      else :
-         self.fichierMapInput=self.fichier
-      composant=self.jdc.etapes[0].nom.lower()[0:-5]
-
-
-      # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog
-      # then instantiate corresponding class and call getUseSalome() method
-      try:
-          from mapengine.spec import factory
-          mapComponent = factory.new(composant)[0]
-
-          command = "map"
-          if mapComponent.getUseSalome():
-              command += " -r sappli"
-          textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput)
-
-          #textePython="ls -l"
-          self._viewTextExecute( textePython,"map_run",".sh")
-          #try:
-          #  commande="rm  "+self.fichierMapInput
-          #   os.system(commande)
-          #except :
-          #   pass
-      except Exception as e:
-          print((traceback.print_exc()))
+        if not(self.jdc.isValid()):
+            QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP"))
+            return
+        if len(self.jdc.etapes) != 1 :
+            QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
+            return
+        if self.modified or self.fichier==None  :
+            self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
+            texte=self.getTextJDC("MAP")
+            self.writeFile( self.fichierMapInput, txt = texte)
+        else :
+            self.fichierMapInput=self.fichier
+        composant=self.jdc.etapes[0].nom.lower()[0:-5]
+
+
+        # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog
+        # then instantiate corresponding class and call getUseSalome() method
+        try:
+            from mapengine.spec import factory
+            mapComponent = factory.new(composant)[0]
+
+            command = "map"
+            if mapComponent.getUseSalome():
+                command += " -r sappli"
+            textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput)
+
+            #textePython="ls -l"
+            self._viewTextExecute( textePython,"map_run",".sh")
+            #try:
+            #  commande="rm  "+self.fichierMapInput
+            #   os.system(commande)
+            #except :
+            #   pass
+        except Exception as e:
+            print((traceback.print_exc()))
 
     #-------------------#
     def runZCRACKS(self):
     #-------------------#
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-         return
-      if self.modified or self.fichier==None  :
-      #if 1:
-         self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
-         texte=self.getTextJDC("ZCRACKS",pourRun=1)
-         self.writeFile( self.fichierZcracksInput, txt = texte)
-      else :
-         self.fichierZcracksInput=self.fichier
-      try :
-          #commande ="Zrun -zp "
-          commande="more "
-          textePython=(commande + self.fichierZcracksInput)
-          self._viewTextExecute( textePython,"run_zcracks",".sh")
-      except Exception as e:
-          print((traceback.print_exc()))
+        if not(self.jdc.isValid()):
+            QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
+            return
+        if self.modified or self.fichier==None  :
+        #if 1:
+            self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
+            texte=self.getTextJDC("ZCRACKS",pourRun=1)
+            self.writeFile( self.fichierZcracksInput, txt = texte)
+        else :
+            self.fichierZcracksInput=self.fichier
+        try :
+            #commande ="Zrun -zp "
+            commande="more "
+            textePython=(commande + self.fichierZcracksInput)
+            self._viewTextExecute( textePython,"run_zcracks",".sh")
+        except Exception as e:
+            print((traceback.print_exc()))
 
     #-------------------#
     def runCARMELCND(self):
     #-------------------#
-      #if not(self.jdc.isValid()):
-      #   QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-      #   return
-      if self.modified or self.fichier==None  :
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
-         return
-      if not hasattr(self,'generator'): texte=self.getTextJDC(self.formatFichierOut)
-      from PrepareRunCarmel import prepareRunCarmel
-      fichierGenerique=os.path.basename(self.fichier).split(".")[0]
-      repMed=os.path.dirname(self.fichier)
-      repExeCarmel=self.generator.get_repExeCarmel()
-      textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
-      nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
-      f=open(nomFichier,'w')
-      f.write(textePython)
-      f.close()
-      commande="xterm -e sh "+nomFichier +"\n"
-      os.system(commande)
+        #if not(self.jdc.isValid()):
+        #   QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
+        #   return
+        if self.modified or self.fichier==None  :
+            QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
+            return
+        if not hasattr(self,'generator'): texte=self.getTextJDC(self.formatFichierOut)
+        from PrepareRunCarmel import prepareRunCarmel
+        fichierGenerique=os.path.basename(self.fichier).split(".")[0]
+        repMed=os.path.dirname(self.fichier)
+        repExeCarmel=self.generator.get_repExeCarmel()
+        textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
+        nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
+        f=open(nomFichier,'w')
+        f.write(textePython)
+        f.close()
+        commande="xterm -e sh "+nomFichier +"\n"
+        os.system(commande)
 
     #-------------------#
     def runCarmelCS(self):
     #-------------------#
-      try :
-          commande="runSession pilotyacsCS.py"
-          os.system(commande)
-      except Exception as e:
-          print((traceback.print_exc()))
+        try :
+            commande="runSession pilotyacsCS.py"
+            os.system(commande)
+        except Exception as e:
+            print((traceback.print_exc()))
 
     #-----------------------------------------------------#
     def determineNomFichier(self,path,extension):
     #-----------------------------------------------------#
-      if self.appliEficas.code in DictExtensions:
-         chaine1=DictExtensions[self.appliEficas.code]+" (*."+DictExtensions[self.appliEficas.code]+");;"
-         extensions= tr(chaine1+ "All Files (*)")
-      else :
-         extensions= tr("JDC (*.comm);;" "All Files (*)")
-
-      if self.appliEficas.code == "MAP" :
-         extensions = extensions + ";; Run (*.input);;"
-
-      fn = QFileDialog.getSaveFileName( self,
-             tr("sauvegarde"), path,
-             extensions,None,
-             QFileDialog.DontConfirmOverwrite)
-      if fn == None : return (0, None)
-      fn=fn[0]
-      if fn=='': return (0, None)
-
-      ext = QFileInfo(fn).suffix()
-      if ext == '': fn+=extension
-
-      if QFileInfo(fn).exists():
-           msgBox = QMessageBox(self)
-           msgBox.setWindowTitle(tr("Sauvegarde du Fichier"))
-           msgBox.setText(tr("Le fichier")+ "  "+str(fn)+ "  " +tr("existe deja"))
-           msgBox.addButton(tr("&Ecraser"),0)
-           msgBox.addButton(tr("&Abandonner"),1)
-           abort=msgBox.exec_()
-           if abort == 1 :  return (0, "")
-      return (1,fn)
+        if self.appliEficas.code in DictExtensions:
+            chaine1=DictExtensions[self.appliEficas.code]+" (*."+DictExtensions[self.appliEficas.code]+");;"
+            extensions= tr(chaine1+ "All Files (*)")
+        else :
+            extensions= tr("JDC (*.comm);;" "All Files (*)")
+
+        if self.appliEficas.code == "MAP" :
+            extensions = extensions + ";; Run (*.input);;"
+
+        fn = QFileDialog.getSaveFileName( self,
+               tr("sauvegarde"), path,
+               extensions,None,
+               QFileDialog.DontConfirmOverwrite)
+        if fn == None : return (0, None)
+        fn=fn[0]
+        if fn=='': return (0, None)
+
+        ext = QFileInfo(fn).suffix()
+        if ext == '': fn+=extension
+
+        if QFileInfo(fn).exists():
+            msgBox = QMessageBox(self)
+            msgBox.setWindowTitle(tr("Sauvegarde du Fichier"))
+            msgBox.setText(tr("Le fichier")+ "  "+str(fn)+ "  " +tr("existe deja"))
+            msgBox.addButton(tr("&Ecraser"),0)
+            msgBox.addButton(tr("&Abandonner"),1)
+            abort=msgBox.exec_()
+            if abort == 1 :  return (0, "")
+        return (1,fn)
 
     #-----------------#
     def saveRunMAP(self):
     #-----------------#
         extension=".input"
         if not(self.jdc.isValid()):
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Un JdC valide est necessaire pour creer un .input")
-                                 )
-           return
+            QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
+                                 tr("Un JdC valide est necessaire pour creer un .input")
+                                  )
+            return
         try :
-          composant=self.jdc.etapes[0].nom.lower()[0:-5]
+            composant=self.jdc.etapes[0].nom.lower()[0:-5]
         except :
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Choix du composant obligatoire")
-                                 )
-           return
+            QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
+                                 tr("Choix du composant obligatoire")
+                                  )
+            return
         if hasattr(self.maConfiguration, "savedir"): path=self.maConfiguration.savedir
         else : path='C:/'
 
         monNomFichier=""
         if self.fichier is not None and self.fichier != "" :
-             maBase=str(QFileInfo(self.fichier).baseName())+".input"
-             monPath=str(QFileInfo(self.fichier).absolutePath())
-             monNomFichier=os.path.join(monPath,maBase)
+            maBase=str(QFileInfo(self.fichier).baseName())+".input"
+            monPath=str(QFileInfo(self.fichier).absolutePath())
+            monNomFichier=os.path.join(monPath,maBase)
         elif hasattr(self,'monNomFichierInput'):
             monNomFichier=self.monNomFichierInput
 
@@ -726,10 +726,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 
         for c in monDialog.children():
             if isinstance(c,QDialogButtonBox):
-               for b in c.children():
-                  if isinstance(b,QPushButton):
-                     avant=b.text()
-                     if avant=="&Open": b.setText("Save")
+                for b in c.children():
+                    if isinstance(b,QPushButton):
+                        avant=b.text()
+                        if avant=="&Open": b.setText("Save")
         mesFiltres= "input Map (*.input);;All Files (*)"
         monDialog.setNameFilters(mesFiltres)
         if monNomFichier!="" : monDialog.selectFile(monNomFichier)
@@ -764,13 +764,13 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #-----------------------------------------#
         try :
         #if 1:
-           from ajoutGroupe import handleAjoutGroupFiltre
-           #print listeGroup
-           handleAjoutGroupFiltre(self,listeGroup)
-           #print "apres handleAjoutGroupFiltre"
+            from ajoutGroupe import handleAjoutGroupFiltre
+            #print listeGroup
+            handleAjoutGroupFiltre(self,listeGroup)
+            #print "apres handleAjoutGroupFiltre"
         except :
         #else :
-           pass
+            pass
 
 
     #-----------------------------------------------------------------#
@@ -781,15 +781,15 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         #saveas=True # Pour forcer le nom
         self.generator=self.maConfiguration.mesGenerators.plugins[self.formatFichierOut]()
         if self.fichierComplet is None or saveas:
-          if path is None: path=self.maConfiguration.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
+            if path is None: path=self.maConfiguration.savedir
+            bOK, fn=self.determineNomFichier(path,extension)
+            if bOK == 0 : return (0, None)
+            if fn == None : return (0, None)
+            if fn== '' : return (0, None)
 
-          ulfile = os.path.abspath(fn)
-          self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-          fn = QDir.toNativeSeparators(fn)
+            ulfile = os.path.abspath(fn)
+            self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            fn = QDir.toNativeSeparators(fn)
 
         self.fichierComplet = os.path.splitext(fn)[0]+extension
 
@@ -819,43 +819,43 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             return (0, None)      # do nothing if text wasn't changed
 
         if self.appliEficas.code in DictExtensions :
-           extension=DictExtensions[self.appliEficas.code]
+            extension=DictExtensions[self.appliEficas.code]
         else :
-           extension='.comm'
+            extension='.comm'
 
         newName = None
         fn = self.fichier
         if self.fichier is None or saveas:
-          if path is None: path=self.maConfiguration.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
+            if path is None: path=self.maConfiguration.savedir
+            bOK, fn=self.determineNomFichier(path,extension)
+            if bOK == 0 : return (0, None)
+            if fn == None : return (0, None)
+            if fn== '' : return (0, None)
 
-          ulfile = os.path.abspath(fn)
-          self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-          fn = QDir.toNativeSeparators(fn)
-          newName = fn
+            ulfile = os.path.abspath(fn)
+            self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            fn = QDir.toNativeSeparators(fn)
+            newName = fn
 
 
         if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None)
         self.fichier = fn
         self.modified  = False
         if self.fileInfo is None or saveas:
-           self.fileInfo = QFileInfo(self.fichier)
-           self.fileInfo.setCaching(0)
+            self.fileInfo = QFileInfo(self.fichier)
+            self.fileInfo.setCaching(0)
         self.lastModified = self.fileInfo.lastModified()
         if newName is not None:
-           self.appliEficas.addToRecentList(newName)
-           self.tree.racine.item.getObject().nom=os.path.basename(newName)
-           self.tree.racine.updateNodeLabel()
+            self.appliEficas.addToRecentList(newName)
+            self.tree.racine.item.getObject().nom=os.path.basename(newName)
+            self.tree.racine.updateNodeLabel()
+
 
         if  self.jdc.cata.modeleMetier:self.jdc.toXml(self.fichier)
         if  self.jdc.cata.modeleMetier and self.jdc.isValid():
             if self.generator != self.XMLgenerator :
-               self.XMLgenerator.gener(self.jdc)
-               self.XMLgenerator.writeDefault(fn)
+                self.XMLgenerator.gener(self.jdc)
+                self.XMLgenerator.writeDefault(fn)
 
         if self.jdc.isValid() != 0 and hasattr(self.generator, "writeDefault"):
         #if hasattr(self.generator, "writeDefault"):
@@ -869,14 +869,14 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             msgBox.addButton(tr("&Annuler"),2)
             res=msgBox.exec_()
             if res == 0 :
-               self.generator.writeDefault(fn)
-               return (1, self.fichier)
+                self.generator.writeDefault(fn)
+                return (1, self.fichier)
             if res == 2 : return (0, None)
             if self.appliEficas.salome : self.appliEficas.close()
             else : sys.exit(1)
 
         if self.salome :
-               self.appliEficas.addJdcInSalome( self.fichier)
+            self.appliEficas.addJdcInSalome( self.fichier)
         self.modified = 0
         nouveauTitre=self.titre+"              "+str(os.path.basename(self.fichier))
         self.appliEficas.setWindowTitle(nouveauTitre)
@@ -902,8 +902,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             the name of the saved file
         """
         if fileName != None :
-           self.fichier = fileName
-           return self.saveFile()
+            self.fichier = fileName
+            return self.saveFile()
         return self.saveFile(path,1,"beautifie")
 
 
@@ -957,10 +957,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         CONTEXT.setCurrentStep(etape)
         etape.buildIncludeEtape(texte)
         if not (etape.text_included_converted) :
-           QMessageBox.information( self,
-                      tr("Impossible d importer le texte"),
-                      etape.text_included_error)
-               
+            QMessageBox.information( self,
+                       tr("Impossible d importer le texte"),
+                       etape.text_included_error)
+
         self.tree.racine.buildChildren()
 
     #-----------------------------------#
@@ -969,16 +969,16 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     # ajoute une etape  de JdC a partir d un texte
         monItem=itemApres
         etape=monItem.item.object
-         
+
         CONTEXT.setCurrentStep(etape)
         try :
-          ok=etape.buildIncludeEtape(texte)
+            ok=etape.buildIncludeEtape(texte)
         except :
-          ok=0
+            ok=0
         if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
+            QMessageBox.information( self,
+                       tr("Import texte"),
+                       tr("Impossible d importer le texte"))
         self.tree.racine.buildChildren()
         return ok
 
@@ -988,13 +988,13 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     # ajoute une etape  de JdC a partir d un texte
         CONTEXT.setCurrentStep(etape)
         try :
-          ok=etape.buildIncludeEtape(texte,doitEtreValide=0)
+            ok=etape.buildIncludeEtape(texte,doitEtreValide=0)
         except :
-          ok=0
+            ok=0
         if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
+            QMessageBox.information( self,
+                       tr("Import texte"),
+                       tr("Impossible d importer le texte"))
         self.tree.racine.buildChildren()
         return ok
 
@@ -1009,197 +1009,197 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #-----------------------------------------
     def initSplitterSizes(self, nbWidget=3):
     #-----------------------------------------
-       #print ("je passe ds initSplitterSizes", nbWidget)
+        #print ("je passe ds initSplitterSizes", nbWidget)
 
-       if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,300]
-       #elif self.code in [ 'MAP']            : self.splitterSizes3=[700,300]
-       else                                  : self.splitterSizes3=[150,1000,300]
+        if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,300]
+        #elif self.code in [ 'MAP']            : self.splitterSizes3=[700,300]
+        else                                  : self.splitterSizes3=[150,1000,300]
 
-       if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500]
-       else                                  : self.splitterSizes2=[300,1000]
+        if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500]
+        else                                  : self.splitterSizes2=[300,1000]
 
 
     #-----------------------------------------
     def restoreSplitterSizes(self,nbWidget=3):
     #----------------------------------------
-      
-      #traceback.print_stack()
-      #print ("je passe ds restoreSplitterSizes")
-      if not(hasattr(self,'splitter')) : return
-      if nbWidget==2  : newSizes=self.splitterSizes2
-      if nbWidget==3  : newSizes=self.splitterSizes3
-      #self.inhibeSplitter = 1
-      #print (newSizes)
-      self.splitter.setSizes(newSizes)
-      #self.inhibeSplitter = 0
-      QApplication.processEvents()
-      # seule la fentetre du milieu est necessaire
-      self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
-   
+
+        #traceback.print_stack()
+        #print ("je passe ds restoreSplitterSizes")
+        if not(hasattr(self,'splitter')) : return
+        if nbWidget==2  : newSizes=self.splitterSizes2
+        if nbWidget==3  : newSizes=self.splitterSizes3
+        #self.inhibeSplitter = 1
+        #print (newSizes)
+        self.splitter.setSizes(newSizes)
+        #self.inhibeSplitter = 0
+        QApplication.processEvents()
+        # seule la fentetre du milieu est necessaire
+        self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
+
     #-----------------------------------------
     def saveSplitterSizes(self,event):
     #-----------------------------------------
-      #print ("je passe ds saveSplitterSizes")
-      if self.inhibeSplitter : return
-      if self.widgetOptionnel == None  : self.splitterSizes2 = self.splitter.sizes()[0:2]
-      else                             : self.splitterSizes3 = self.splitter.sizes()[0:3]
+        #print ("je passe ds saveSplitterSizes")
+        if self.inhibeSplitter : return
+        if self.widgetOptionnel == None  : self.splitterSizes2 = self.splitter.sizes()[0:2]
+        else                             : self.splitterSizes3 = self.splitter.sizes()[0:3]
 
     #------------------------
     def fermeOptionnel(self):
     #------------------------
-      if self.widgetOptionnel == None : return
+        if self.widgetOptionnel == None : return
 
-      self.inhibeSplitter=1
-      self.widgetOptionnel.setParent(None)
-      self.widgetOptionnel.close()
-      self.widgetOptionnel.deleteLater()
-      self.widgetOptionnel=None
-      self.inhibeSplitter=0
-      self.restoreSplitterSizes(2)
+        self.inhibeSplitter=1
+        self.widgetOptionnel.setParent(None)
+        self.widgetOptionnel.close()
+        self.widgetOptionnel.deleteLater()
+        self.widgetOptionnel=None
+        self.inhibeSplitter=0
+        self.restoreSplitterSizes(2)
 
     #------------------------
     def ajoutOptionnel(self):
     #------------------------
-      #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
-      #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
-      #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2]
-      
-      self.restoreSplitterSizes(3)
+        #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
+        #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
+        #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2]
+
+        self.restoreSplitterSizes(3)
 
 
     #------------------------
     def fermeArbre(self):
     #------------------------
-       #print (self.widgetTree)
-       self.oldWidgetTree=self.widgetTree
-       self.widgetTree.hide()
-       #self.widgetTree=None
+        #print (self.widgetTree)
+        self.oldWidgetTree=self.widgetTree
+        self.widgetTree.hide()
+        #self.widgetTree=None
 
     #------------------------
     def ouvreArbre(self):
     #------------------------
-       #print ('je passe la')
-       #print (self.widgetTree)
-       #self.widgetTree=self.oldWidgetTree
-       self.widgetTree.show()
-       #self.restoreSplitterSizes(3)
+        #print ('je passe la')
+        #print (self.widgetTree)
+        #self.widgetTree=self.oldWidgetTree
+        self.widgetTree.show()
+        #self.restoreSplitterSizes(3)
 
     #-----------------------
     def getEtapeCourante(self) :
     #-----------------------
-      if len(self.tree.selectedItems()) != 1 : return None
-      etape=self.tree.selectedItems()[0].item.object.getEtape()
-      return etape
+        if len(self.tree.selectedItems()) != 1 : return None
+        etape=self.tree.selectedItems()[0].item.object.getEtape()
+        return etape
     #-----------------------------
     def getTreeIndex(self,noeud):
     #----------------------------
-      indexNoeud=-1
-      if noeud in noeud.treeParent.children :
-          indexNoeud=noeud.treeParent.children.index(noeud)
-      else :
-          if hasattr(noeud,'vraiParent') :
-              noeudVrai = noeud
-              noeudVraiParent = noeud.vraiParent
-              while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') :
-                  noeudVrai = noeudVraiParent
-                  noeudVraiParent = noeudVraiParent.vraiParent
-                  pass
-              if noeudVraiParent == noeud.treeParent :
-                  indexNoeud=noeud.treeParent.children.index(noeudVrai)
-                  pass
-              pass
-          pass
-      return indexNoeud
+        indexNoeud=-1
+        if noeud in noeud.treeParent.children :
+            indexNoeud=noeud.treeParent.children.index(noeud)
+        else :
+            if hasattr(noeud,'vraiParent') :
+                noeudVrai = noeud
+                noeudVraiParent = noeud.vraiParent
+                while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') :
+                    noeudVrai = noeudVraiParent
+                    noeudVraiParent = noeudVraiParent.vraiParent
+                    pass
+                if noeudVraiParent == noeud.treeParent :
+                    indexNoeud=noeud.treeParent.children.index(noeudVrai)
+                    pass
+                pass
+            pass
+        return indexNoeud
 
     #-------------------#  Pour execution avec output et error dans le bash
     def runPSEN(self):
     #-------------------#
-    
-      #if self.modified or self.fichier==None  : self.saveFile()
-      self.saveFile()
-        
-      #lancement avec le .bat
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
-      WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py') 
-      import subprocess
-      p = subprocess.Popen(['python',WrapperFilePath])
-      (out,err)=p.communicate()        
-      print (out)
-      print (err)
+
+        #if self.modified or self.fichier==None  : self.saveFile()
+        self.saveFile()
+
+        #lancement avec le .bat
+        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
+        WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py')
+        import subprocess
+        p = subprocess.Popen(['python',WrapperFilePath])
+        (out,err)=p.communicate()
+        print (out)
+        print (err)
 
     #-------------------#  Pour execution avec output et error dans le bash
     def runPSEN_N1(self):
     #-------------------#
-      
-
-      self.saveFile()
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)
-
-      if not(self.jdc.isValid()):
-         QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico 
-         
-         ###to delete
-         #fileDico =  r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         fileDico =  os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         f = open( str(fileDico), 'w')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         
-      
-      print ('in runPSEN_N1', dico)
-      print (dico)
-      from Run import run 
-      run(dico)
-      #res,txt_exception=run(dico)
-      #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception)
-      #else  : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception)
-       
+
+
+        self.saveFile()
+        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
+        sys.path.append(path1)
+
+        if not(self.jdc.isValid()):
+            QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.generator.Dico
+
+            ###to delete
+            #fileDico =  r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
+            fileDico =  os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
+            f = open( str(fileDico), 'w')
+            f.write("Dico =" + str(dico) )
+            f.close()
+            ###
+
+
+        print ('in runPSEN_N1', dico)
+        print (dico)
+        from Run import run
+        run(dico)
+        #res,txt_exception=run(dico)
+        #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception)
+        #else  : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception)
+
     #-------------------#  Pour execution avec output et error dans le bash
     def process_N1(self):
     #-------------------#
 
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)
+        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
+        sys.path.append(path1)
 
 
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.getDico() #generator.Dico
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.getDico() #generator.Dico
 
 
-         for k in dico['CONTINGENCY_PROCESSING']:
-             #print (k)
-             if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' :
-                newK=k.replace('__',' ')
-                l="'"+str(newK)+"'"
-                dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k]
-                del dico['CONTINGENCY_PROCESSING'][k]
+            for k in dico['CONTINGENCY_PROCESSING']:
+            #print (k)
+                if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' :
+                    newK=k.replace('__',' ')
+                    l="'"+str(newK)+"'"
+                    dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k]
+                    del dico['CONTINGENCY_PROCESSING'][k]
 
-         ###to delete
-         fileDico =  os.path.join(path1, 'dicoN1_process.py')
-         f = open( str(fileDico), 'w')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         return dico
+            ###to delete
+            fileDico =  os.path.join(path1, 'dicoN1_process.py')
+            f = open( str(fileDico), 'w')
+            f.write("Dico =" + str(dico) )
+            f.close()
+            ###
+            return dico
 
         #return self.getDico()
 
     #-------------------#  Pour execution avec output et error dans le bash
     def process_VP(self):
     #-------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.getDico() #generator.Dico
-         return dico
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.getDico() #generator.Dico
+            return dico
 
 if __name__ == "__main__":
     print ('in main')
index d6fa7298a7e043c731c250cdbd419d52a12ab01e..553d4dc2d04bf3a1dc0d21bbe3ffa9756dd18ca7 100755 (executable)
@@ -20,8 +20,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,sys,os, re
@@ -64,7 +64,7 @@ class JDCEditorSsIhm :
         if fichier != None : self.extensionFichier = os.path.splitext(fichier)[1]
         else : self.extensionFichier = None
         self.jdc         = jdc
-        self.first      = True
+        self.first       = True
         self.jdc_item    = None
         self.dicoNouveauxMC   = {}
         self.dicoNouveauxFact = {}
@@ -80,15 +80,15 @@ class JDCEditorSsIhm :
 
 
         if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.readercata.demandeCatalogue==True or self.appliEficas.multi==True:
-           if self.maConfiguration.typeDeCata == 'XML' :
-              from InterfaceQT4   import readercataXML as readercata
-           else :
-              from InterfaceQT4   import readercata
-           self.readercata  = readercata.ReaderCata( self, self.appliEficas )
-           self.appliEficas.readercata=self.readercata
-           self.appliEficas.code=self.code
+            if self.maConfiguration.typeDeCata == 'XML' :
+                from InterfaceQT4   import readercataXML as readercata
+            else :
+                from InterfaceQT4   import readercata
+            self.readercata  = readercata.ReaderCata( self, self.appliEficas )
+            self.appliEficas.readercata=self.readercata
+            self.appliEficas.code=self.code
         else :
-           self.readercata=self.appliEficas.readercata
+            self.readercata=self.appliEficas.readercata
         if self.readercata.fichierCata == None : return    #Sortie Salome
         self.titre=self.readercata.titre
 
@@ -103,30 +103,30 @@ class JDCEditorSsIhm :
 
 
         try:
-          self.maConfiguration.generator_module
-          _module = __import__(self.maConfiguration.generator_module)
-          info    = _module.entryPoint()
-          generator.plugins.addEntryPoint(info)
+            self.maConfiguration.generator_module
+            _module = __import__(self.maConfiguration.generator_module)
+            info    = _module.entryPoint()
+            generator.plugins.addEntryPoint(info)
         except:
-          pass
+            pass
 
         try:
-          self.maConfiguration.convert_module
-          #print self.maConfiguration.convert_module
-          _module = __import__(self.maConfiguration.convert_module)
-          info = _module.entryPoint()
-          convert.plugins.addEntryPoint(info)
+            self.maConfiguration.convert_module
+            #print self.maConfiguration.convert_module
+            _module = __import__(self.maConfiguration.convert_module)
+            info = _module.entryPoint()
+            convert.plugins.addEntryPoint(info)
         except :
-          pass
+            pass
 
         self.maConfiguration.mesGenerators     = generator
         self.maConfiguration.mesconvertisseurs = convert
         try    : self.XMLgenerator=generator.plugins['xml']()
         except : self.XMLgenerator=None
-        
+
 
         if self.formatFichierOut in generator.plugins.keys():
-           self.generator = generator.plugins[self.formatFichierOut]()
+            self.generator = generator.plugins[self.formatFichierOut]()
 
 
         self.fileInfo       = None
@@ -141,21 +141,21 @@ class JDCEditorSsIhm :
         self.nouveau=0
         if self.fichier is not None:        #  fichier jdc fourni
             if jdc==None :
-               #print ('PNPN : chgt try en if')
-               try :
-               #if 1 :
-                   self.jdc = self.readFile(self.fichier)
-               except :
-                   print ("mauvaise lecture du fichier")
-               if self.salome :
-                  try    : self.appliEficas.addJdcInSalome( self.fichier)
-                  except : print ("mauvais enregistrement dans Salome")
+                #print ('PNPN : chgt try en if')
+                try :
+                #if 1 :
+                    self.jdc = self.readFile(self.fichier)
+                except :
+                    print ("mauvaise lecture du fichier")
+                if self.salome :
+                    try    : self.appliEficas.addJdcInSalome( self.fichier)
+                    except : print ("mauvais enregistrement dans Salome")
             else :
-               self.jdc=jdc
+                self.jdc=jdc
 
             if self.jdc is not None and units is not None:
-               self.jdc.recorded_units=units
-               self.jdc.old_recorded_units=units
+                self.jdc.recorded_units=units
+                self.jdc.old_recorded_units=units
 
         else:
             if not self.jdc:                   #  nouveau jdc
@@ -168,10 +168,10 @@ class JDCEditorSsIhm :
             self.jdc.lang    = self.appliEficas.langue
             self.jdc.aReafficher=False
             txt_exception  = None
-            if not jdc:            
+            if not jdc:
                 if self.extensionFichier == '.xml' :
-                   if self.appliEficas.maConfiguration.withXSD: self.jdc.analyseXML()
-                   else : print ('run MDM with -x option  (MDM for XML)'); exit()
+                    if self.appliEficas.maConfiguration.withXSD: self.jdc.analyseXML()
+                    else : print ('run MDM with -x option  (MDM for XML)'); exit()
                 else : self.jdc.analyse()
                 txt_exception = self.jdc.cr.getMessException()
             if txt_exception :
@@ -199,14 +199,14 @@ class JDCEditorSsIhm :
         formatIn=self.appliEficas.formatFichierIn
         if self.extensionFichier == '.xml' and self.appliEficas.maConfiguration.withXSD: formatIn='xml'
         if formatIn in convert.plugins:
-             # Le convertisseur existe on l'utilise
-             p=convert.plugins[formatIn]()
-             p.readfile(fn)
+            # Le convertisseur existe on l'utilise
+            p=convert.plugins[formatIn]()
+            p.readfile(fn)
 
-             if p.text=="" : self.nouveau=1
-             #print ('PNPN --> CIST a faire')
+            if p.text=="" : self.nouveau=1
+            #print ('PNPN --> CIST a faire')
 
-             if formatIn != 'xml':
+            if formatIn != 'xml':
                 pareil,texteNew=self.verifieChecksum(p.text)
                 if  not pareil : self.informe(("fichier modifie"),("Attention! fichier change hors EFICAS"),False)
                 p.text=texteNew
@@ -215,7 +215,7 @@ class JDCEditorSsIhm :
                 p.text=texteNew
                 text=p.convert('exec',self.appliEficas)
                 if not p.cr.estvide(): self.afficheInfos("Erreur a la conversion",'red')
-             else:
+            else:
                 text=p.text
         else :
             self.afficheInfos("Type de fichier non reconnu",'red')
@@ -264,15 +264,15 @@ class JDCEditorSsIhm :
 
         jdc.lang    = self.appliEficas.langue
         if units is not None:
-           jdc.recorded_units=units
-           jdc.old_recorded_units=units
-        # chgt le 15/10/19 
+            jdc.recorded_units=units
+            jdc.old_recorded_units=units
+        # chgt le 15/10/19
         # Attention positionne  contexte ?
         # est ce qu on ne doit pas changer le format en Accas si on vient d accas ?
         jdc.editor=self
         return jdc
 
-   #--------------------------------#
+    #--------------------------------#
     def _newJDCInclude( self ,units = None):
     #--------------------------------#
         """
@@ -302,8 +302,8 @@ class JDCEditorSsIhm :
         J.editor=self
         J.analyse()
         if units is not None:
-           J.recorded_units=units
-           J.old_recorded_units=units
+            J.recorded_units=units
+            J.old_recorded_units=units
         return J
 
 
@@ -339,26 +339,26 @@ class JDCEditorSsIhm :
     #-----------------------#
     def generDico(self):
     #-----------------------#
-       if 'dico' in generator.plugins:
-         self.generator=generator.plugins['dico']()
-         #print (self.generator)
-         jdc_formate=self.generator.gener(self.jdc)
-         #print (jdc_formate)
-         dico=self.generator.Dico
-         #print (dico)
-         return dico
+        if 'dico' in generator.plugins:
+            self.generator=generator.plugins['dico']()
+            #print (self.generator)
+            jdc_formate=self.generator.gener(self.jdc)
+            #print (jdc_formate)
+            dico=self.generator.Dico
+            #print (dico)
+            return dico
 
     #-----------------------#
     def viewJdcSource(self):
     #-----------------------#
         if self.fichier == None : return
         if os.path.isfile(self.fichier):
-           f=open(self.fichier,'r')
-           texteSource=f.read()
-           f.close()
-           self._viewText(texteSource, "JDC_SOURCE")
+            f=open(self.fichier,'r')
+            texteSource=f.read()
+            f.close()
+            self._viewText(texteSource, "JDC_SOURCE")
         else :
-           self._viewText("file doesn't exist", "JDC_SOURCE")
+            self._viewText("file doesn't exist", "JDC_SOURCE")
 
 
     #-----------------------#
@@ -378,7 +378,7 @@ class JDCEditorSsIhm :
     def viewJdcRegles(self):
     #-----------------------#
         # on ajoute les regles
-        texte_global, test_global =  self.jdc.verifRegles() 
+        texte_global, test_global =  self.jdc.verifRegles()
         self._viewText(texte_global, "JDC_REGLES")
 
     #-----------------------#
@@ -391,16 +391,16 @@ class JDCEditorSsIhm :
     #---------------------#
     def getFileName(self):
     #---------------------#
-      return self.fichier
+        return self.fichier
 
     #-------------------#
     def initModif(self):
     #-------------------#
-      """
-          Met l'attribut modified a 'o' : utilise par Eficas pour savoir
-          si un JDC doit etre sauvegarde avant destruction ou non
-      """
-      self.modified = True
+        """
+            Met l'attribut modified a 'o' : utilise par Eficas pour savoir
+            si un JDC doit etre sauvegarde avant destruction ou non
+        """
+        self.modified = True
 
 
     #--------------------------------------------------#
@@ -419,8 +419,8 @@ class JDCEditorSsIhm :
             txt = self.getTextJDC(self.formatFichierOut,formatLigne=formatLigne)
             eol = '\n'
             if len(txt) >= len(eol):
-               if txt[-len(eol):] != eol:
-                  txt += eol
+                if txt[-len(eol):] != eol:
+                    txt += eol
             else:
                 txt += eol
             txt=self.ajoutVersionCataDsJDC(txt)
@@ -437,34 +437,34 @@ class JDCEditorSsIhm :
             print('Sauvegarde du Fichier', 'Le fichier'+str(fn) + 'n a pas pu etre sauvegarde :'  , str(why))
             self.afficheInfos('Le fichier'+str(fn) + 'n a pas pu etre sauvegarde '  , 'red')
             return 0
-           
+
 
     #-----------------------------------------------------------#
     def getTextJDC(self,format = None,pourRun=0,formatLigne="beautifie"):
     #-----------------------------------------------------------#
-      if self.code == "MAP" and not(format in generator.plugins): format = "MAP"
-      if format == None : format = self.formatFichierOut
-      if format in generator.plugins:
-
-         # Le generateur existe on l'utilise
-         self.generator=generator.plugins[format]()
-         try :
-            jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.maConfiguration,appliEficas=self.appliEficas)
-            if pourRun : jdc_formate=self.generator.textePourRun
-            if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
-         except ValueError as e:
-            self.informe( "Erreur a la generation",str(e),'red')
-            return
-
-         if not self.generator.cr.estvide():
-            self.informe("Erreur a la generation","EFICAS ne sait pas convertir ce JDC",'red')
+        if self.code == "MAP" and not(format in generator.plugins): format = "MAP"
+        if format == None : format = self.formatFichierOut
+        if format in generator.plugins:
+
+            # Le generateur existe on l'utilise
+            self.generator=generator.plugins[format]()
+            try :
+                jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.maConfiguration,appliEficas=self.appliEficas)
+                if pourRun : jdc_formate=self.generator.textePourRun
+                if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
+            except ValueError as e:
+                self.informe( "Erreur a la generation",str(e),'red')
+                return
+
+            if not self.generator.cr.estvide():
+                self.informe("Erreur a la generation","EFICAS ne sait pas convertir ce JDC",'red')
+                return ""
+            else:
+                return jdc_formate
+        else:
+            # Il n'existe pas c'est une erreur
+            self.informe("Format inconnu", self.format +  " non reconnu" )
             return ""
-         else:
-            return jdc_formate
-      else:
-         # Il n'existe pas c'est une erreur
-         self.informe("Format inconnu", self.format +  " non reconnu" )
-         return ""
 
     #------------------------------#
     def verifieChecksum(self,text):
@@ -477,48 +477,48 @@ class JDCEditorSsIhm :
         checkAvant=text[indexDeb:indexFin+13]
         textJDC=text[0:indexDeb]+text[indexFin+13:-1]
         if self.code != 'PSEN'  and self.code != 'PSEN_N1':
-           checksum=self.getChecksum(textJDC)
-           pareil=(checkAvant==checksum)
+            checksum=self.getChecksum(textJDC)
+            pareil=(checkAvant==checksum)
         else :
-           pareil=1
+            pareil=1
         return pareil, textJDC
 
     #---------------------------#
     def getChecksum(self,texte):
     #---------------------------#
         try :
-           import haslib
-           newtexte=texte.replace('"','\\"')
-           hash_checksum = hashlib.md5()
-           hash_checksum.update(newtexte.encode('utf-8'))
-           checksum = hash_checksum.hexdigest()
-           ligne = ligne="#CHECKSUM:"+checksum+":FIN CHECKSUM"
-        except : 
-           try :
-              newtexte=texte.replace('"','\\"')
-              commande='echo "'+newtexte+'"|md5sum'
-              a=os.popen(commande)
-              checksum=a.read()
-              a.close()
-           except :
-              checksum='Fichier trop long \n'
-           ligne="#CHECKSUM:"+checksum[0:-1]+":FIN CHECKSUM"
-           return ligne
+            import haslib
+            newtexte=texte.replace('"','\\"')
+            hash_checksum = hashlib.md5()
+            hash_checksum.update(newtexte.encode('utf-8'))
+            checksum = hash_checksum.hexdigest()
+            ligne = ligne="#CHECKSUM:"+checksum+":FIN CHECKSUM"
+        except :
+            try :
+                newtexte=texte.replace('"','\\"')
+                commande='echo "'+newtexte+'"|md5sum'
+                a=os.popen(commande)
+                checksum=a.read()
+                a.close()
+            except :
+                checksum='Fichier trop long \n'
+            ligne="#CHECKSUM:"+checksum[0:-1]+":FIN CHECKSUM"
+            return ligne
 
     #----------------------#
     def getDico(self):
     #---------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         #print (self.generator)
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico
-         return dico
-      else :
-         self.afficheInfos(tr("Format %s non reconnu" , 'Dictionnaire Imbrique' ),'red')
-         return ""
-
-   #-----------------------------------------#
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            #print (self.generator)
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.generator.Dico
+            return dico
+        else :
+            self.afficheInfos(tr("Format %s non reconnu" , 'Dictionnaire Imbrique' ),'red')
+            return ""
+
+    #-----------------------------------------#
     def chercheGroupes(self):
     #-----------------------------------------#
         listeMA,listeNO=self.getTextJDC("GroupMA")
@@ -530,18 +530,18 @@ class JDCEditorSsIhm :
         dicoCourant={}
         format =  self.appliEficas.formatFichierOut
         if format in generator.plugins:
-           # Le generateur existe on l'utilise
-           self.generator=generator.plugins[format]()
-           jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.maConfiguration)
-           dicoCourant=self.generator.dico
+            # Le generateur existe on l'utilise
+            self.generator=generator.plugins[format]()
+            jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.maConfiguration)
+            dicoCourant=self.generator.dico
         return dicoCourant
 
     #-----------------------------------------------------------------#
     def saveFileLegerAs(self, fileName = None) :
     #-----------------------------------------------------------------#
         if fileName != None :
-           self.fichier = fileName
-           return self.saveFileLeger(fileName)
+            self.fichier = fileName
+            return self.saveFileLeger(fileName)
         return self.saveFileLeger()
 
     #-----------------------------------------------------------------#
@@ -561,24 +561,24 @@ class JDCEditorSsIhm :
     #--------------------------------#
     def ajoutCommentaire(self):
     #--------------------------------#
-      print ('pas programme sans Ihm')
-      print ('prevenir la maintenance du besoin')
+        print ('pas programme sans Ihm')
+        print ('prevenir la maintenance du besoin')
 
 
     #--------------------------------------#
     def informe(self,titre,txt,critique=True):
     #--------------------------------------#
     # methode differenre avec et sans ihm
-      if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
-      print (titre)
-      print (txt)
-      if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
+        if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
+        print (titre)
+        print (txt)
+        if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
 
     #--------------------------------------#
     def afficheInfos(self,txt,couleur=None):
     #--------------------------------------#
     # methode differenre avec et sans ihm
-      print (txt)
+        print (txt)
 
     #-----------------------------------------------------------------------#
     def _viewText(self, txt, caption = "FILE_VIEWER",largeur=1200,hauteur=600):
@@ -605,9 +605,9 @@ class JDCEditorSsIhm :
         if not (self.writeFile(fichier,formatLigne=formatLigne)): return (0, None)
         if  self.jdc.cata.modeleMetier and self.jdc.isValid():
             if self.generator != self.XMLgenerator :
-               self.XMLgenerator.gener(self.jdc)
-               self.XMLgenerator.writeDefault(fichier)
-               return(1,self.fichier)
+                self.XMLgenerator.gener(self.jdc)
+                self.XMLgenerator.writeDefault(fichier)
+                return(1,self.fichier)
         if self.jdc.isValid() and hasattr(self.generator, "writeDefault"):
             self.generator.writeDefault(fichier)
         elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"):
@@ -641,13 +641,13 @@ class JDCEditorSsIhm :
         etape=monItem.item.object
         CONTEXT.set_current_step(etape)
         try :
-          ok=etape.build_includeEtape(texte)
+            ok=etape.build_includeEtape(texte)
         except :
-          ok=0
+            ok=0
         if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
+            QMessageBox.information( self,
+                       tr("Import texte"),
+                       tr("Impossible d importer le texte"))
         self.tree.racine.build_children()
         return ok
 
@@ -665,7 +665,7 @@ class JDCEditorSsIhm :
     # dans le JDC
         ouChercher=etape
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if monMC != None :  ouChercher.suppentite(monMC)
         ouChercher.state='changed'
@@ -680,7 +680,7 @@ class JDCEditorSsIhm :
         ouChercher=etape
         if debug : print (ouChercher)
         for mot in listeAvant :
-           ouChercher=ouChercher.getChild(mot,restreint="oui")
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if monMC == None : monMC = ouChercher.addEntite(MCFils)
         monMC.valeur=valeurs
@@ -699,7 +699,7 @@ class JDCEditorSsIhm :
         ouChercher=etape
         if debug : print (ouChercher)
         for mot in listeAvant :
-           ouChercher=ouChercher.getChild(mot,restreint="oui")
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         # Attention si +sieursMCFACT
         ouChercher=ouChercher[0]
         if debug : print (ouChercher)
@@ -717,7 +717,7 @@ class JDCEditorSsIhm :
     # dans le JDC
         ouChercher=etape
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         monMC=etape.getChild(ouChercher,restreint="oui")
         if monMC== None : monMC= ouChercher.addEntite(MCFils)
         monMC.isvalid()
@@ -728,14 +728,14 @@ class JDCEditorSsIhm :
     # pour VP
         monObj=etape
         for mot in listeAvant :
-              monObj=monObj.getChild(mot,restreint="oui")
-              if monObj==None : return False
+            monObj=monObj.getChild(mot,restreint="oui")
+            if monObj==None : return False
         if monObj == None : return False
         if monObj.valeur != valeur :
-           # PNPN le setValeur fait des bugs --> pourquoi
-           #monObj.setValeur(valeur)
-           monObj.valeur=valeur
-           monObj.isValid()
+            # PNPN le setValeur fait des bugs --> pourquoi
+            #monObj.setValeur(valeur)
+            monObj.valeur=valeur
+            monObj.isValid()
         return True
 
     #-------------------------------------------------#
@@ -750,9 +750,9 @@ class JDCEditorSsIhm :
         if debug : print ('etape trouvee', ouChercher)
         if ouChercher==None : return None
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              if debug : print (mot, ouChercher)
-              if ouChercher==None : return None
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            if debug : print (mot, ouChercher)
+            if ouChercher==None : return None
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if debug : print ('monMC', monMC)
         if monMC== None : return None
@@ -767,9 +767,9 @@ class JDCEditorSsIhm :
         ouChercher=etape
         debug=0
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              if debug : print (mot, ouChercher)
-              if ouChercher==None : return None
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            if debug : print (mot, ouChercher)
+            if ouChercher==None : return None
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if debug : print ('monMC', monMC)
         return monMC
@@ -784,9 +784,9 @@ class JDCEditorSsIhm :
             if e.nom == nomEtape : ouChercher=e; break
         if ouChercher==None : return None
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              #print (mot, ouChercher)
-              if ouChercher==None : return None
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            #print (mot, ouChercher)
+            if ouChercher==None : return None
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         monMC.set_valeur(valeur)
         monMC.isvalid()
@@ -797,14 +797,14 @@ class JDCEditorSsIhm :
     # dans le JDC
         ouChercher=etape
         if isinstance (etape, str):
-           ouChercher=None
-           for e in self.jdc.etapes:
-              if e.nom == etape : ouChercher=e; break
+            ouChercher=None
+            for e in self.jdc.etapes:
+                if e.nom == etape : ouChercher=e; break
         if ouChercher==None : return
 
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              if ouChercher==None : return
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            if ouChercher==None : return
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if monMC== None : monMC= ouChercher.addEntite(MCFils)
 
@@ -823,20 +823,20 @@ class JDCEditorSsIhm :
 
         for mot in listeAvant :
             try :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
+                ouChercher=ouChercher.getChild(mot,restreint="oui")
             # Le mot clef n est pas la
             except : return 0
         try :
-           monMC=ouChercher.getChild(MCFils,restreint="oui")
+            monMC=ouChercher.getChild(MCFils,restreint="oui")
         # Le mot clef n est pas la
         except : return 0
         if monMC == None : return 0
 
         if hasattr(monMC.definition,'into') :
-           if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
-           else : maListeDeValeur=monMC.definition.into
+            if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
+            else : maListeDeValeur=monMC.definition.into
         else :
-           return 0
+            return 0
 
         monMC.state='changed'
         return 1
@@ -865,9 +865,9 @@ class JDCEditorSsIhm :
         ouChercher=definitionEtape
         if len(listeMC) > 1 :
 
-           for mc in listeMC[0:-1]:
-             mcfact=ouChercher.entites[mc]
-             ouChercher=mcfact
+            for mc in listeMC[0:-1]:
+                mcfact=ouChercher.entites[mc]
+                ouChercher=mcfact
 
         mcAccas=ouChercher.entites[listeMC[-1]]
         mcAccas.defaut=valeurs
@@ -908,8 +908,8 @@ class JDCEditorSsIhm :
     # dans le MDD
         #print 'in deleteDefinitionMC', etape,listeAvant,nomDuMC
         if isinstance (etape, str):
-          for e in self.jdc.etapes:
-            if e.nom == etape : etape=e; break
+            for e in self.jdc.etapes:
+                if e.nom == etape : etape=e; break
         if etape == None : return
         #definitionEtape=getattr(self.jdc.cata[0],etape)
         definitionEtape=getattr(self.jdc.cata,etape)
@@ -985,8 +985,8 @@ class JDCEditorSsIhm :
         self.changeIntoDefMC(etape,listeMC,into)
 
         if isinstance (etape, str):
-          for e in self.jdc.etapes:
-            if e.nom == etape : etape=e; break
+            for e in self.jdc.etapes:
+                if e.nom == etape : etape=e; break
         if etape == None : return
 
         ouChercher = etape
@@ -1019,11 +1019,11 @@ class JDCEditorSsIhm :
         indexDeb=text.find("#VERSION_CATALOGUE:")
         indexFin=text.find(":FIN VERSION_CATALOGUE")
         if indexDeb < 0 :
-           self.versionCataDuJDC="sans"
-           textJDC=text
+            self.versionCataDuJDC="sans"
+            textJDC=text
         else :
-           self.versionCataDuJDC=text[indexDeb+19:indexFin]
-           textJDC=text[0:indexDeb]+text[indexFin+23:-1]
+            self.versionCataDuJDC=text[indexDeb+19:indexFin]
+            textJDC=text[0:indexDeb]+text[indexFin+23:-1]
 
         self.versionCata="sans"
         if hasattr(self.readercata.cata,'VERSION_CATALOGUE'): self.versionCata=self.readercata.cata.VERSION_CATALOGUE
@@ -1080,39 +1080,39 @@ class JDCEditorSsIhm :
     #---------------------------#
     def _newJDCCND(self):
     #---------------------------#
-      extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)')
-
-      #if self.salome == 0 :
-      QMessageBox.information( self,
-                      tr("Fichier Med"),
-                      tr("Veuillez selectionner un fichier Med"))
-      QSfichier = QFileDialog.getOpenFileName(self.appliEficas,
-                        caption='Fichier Med',
-                        filter=extensions)
-      QSfichier=QSfichier[0]
-      self.fichierMED=QSfichier
-      from acquiertGroupes import getGroupes
-      erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
-      if erreur != "" : print ("a traiter")
-      texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
-      texteSources=""
-      texteCond=""
-      texteNoCond=""
-      texteVcut=""
-      texteZs=""
-      for groupe in self.listeGroupes :
-          if groupe[0:8]=='CURRENT_':
-             texteSources +=groupe[8:]+"=SOURCE("
-             texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n"
-          if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
-          if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
-          if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
-          if groupe[0:3]=='ZS_':      texteZs      +=groupe[3:]+"=ZS();\n"
-      texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut+texteZs
-      self.newTexteCND=texte
-      self.modified=1
-      return texte
+        extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)')
+
+        #if self.salome == 0 :
+        QMessageBox.information( self,
+                        tr("Fichier Med"),
+                        tr("Veuillez selectionner un fichier Med"))
+        QSfichier = QFileDialog.getOpenFileName(self.appliEficas,
+                          caption='Fichier Med',
+                          filter=extensions)
+        QSfichier=QSfichier[0]
+        self.fichierMED=QSfichier
+        from acquiertGroupes import getGroupes
+        erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
+        if erreur != "" : print ("a traiter")
+        texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
+        texteSources=""
+        texteCond=""
+        texteNoCond=""
+        texteVcut=""
+        texteZs=""
+        for groupe in self.listeGroupes :
+            if groupe[0:8]=='CURRENT_':
+                texteSources +=groupe[8:]+"=SOURCE("
+                texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n"
+            if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
+            if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
+            if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
+            if groupe[0:3]=='ZS_':      texteZs      +=groupe[3:]+"=ZS();\n"
+        texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut+texteZs
+        self.newTexteCND=texte
+        self.modified=1
+        return texte
 
 
 if __name__ == "__main__":
-   print ('a faire')
+    print ('a faire')
index a17ace721ab81ee348145b1712acd4ef65d1e000..9246381c2087e30d2a6073b24076434d3ac64cdf 100755 (executable)
@@ -23,7 +23,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 
@@ -44,10 +44,10 @@ def lanceEficas(code=None, multi=False, langue='en', labelCode=None):
         Lance l'appli EFICAS avec Ihm
     """
     try :
-      from PyQt5.QtWidgets import QApplication
+        from PyQt5.QtWidgets import QApplication
     except :
-      print('Please, set qt environment')
-      return
+        print('Please, set qt environment')
+        return
 
     from Editeur  import session
     options = session.parse(sys.argv)
@@ -61,6 +61,3 @@ def lanceEficas(code=None, multi=False, langue='en', labelCode=None):
 
     res=app.exec_()
     sys.exit(res)
-
-    
-
index 41dc13fa5576e19e13ac83a651027ad3bf7daa89..7937b21968ce8453484ab9ee8323576b61ccb8c1 100644 (file)
@@ -20,9 +20,9 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-  from builtins import str
+    from builtins import str
 except :
-  pass
+    pass
 import types,os
 import traceback
 
@@ -37,93 +37,93 @@ from .gereIcones import FacultatifOuOptionnel
 from .qtSaisie    import SaisieValeur
 
 nomMax=230
-# empirique les metrics ne fonctionnent pas 
+# empirique les metrics ne fonctionnent pas
 # ---------------------------------------------------------------------- #
 class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
 # --------------------------------------------------------------------- #
 
 
-   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-       #print ("Feuille", monSimpDef,nom,objSimp)
-       QWidget.__init__(self,None)
-       self.node=node
-       self.node.fenetre=self
-
-       # on se positionne pour les icones
-       #os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__))))
-       self.setupUi(self)
-       self.prendLeFocus=0
-
-       maPolice= QFont("Times", 10)
-       self.setFont(maPolice)
-       self.setFocusPolicy(Qt.StrongFocus)
-
-       self.parentQt=parentQt
-       self.editor=self.node.editor
-       self.appliEficas=self.editor.appliEficas
-       self.repIcon=self.appliEficas.repIcon
-       self.monSimpDef=monSimpDef
-       self.nom=nom
-       self.objSimp=objSimp
-       self.node.fenetre=self
-       self.maCommande=commande
-
-       self.aRedimensionner=0
-       self.setSuggestion()
-       self.setValeurs()
-       self.setNom()
-       self.setValide()
-       self.setIconePoubelle()
-       self.setIconesFichier()
-       self.setIconesSalome()
-       self.setIconesGenerales()
-       self.setCommentaire()
-       self.setZoneInfo()
-     
-
-   def setNom(self):
-       self.debutToolTip=""
-       nomTraduit=tr(self.objSimp.nom)
-       #metrix= QFontMetrics(self.label.font())
-       #maxLongueur = self.label.width() - 2
-       #print ('______________________')
-       #print (nomTraduit)
-       #print (self.label.font().pixelSize())
-       #longueur2 = metrix.boundingRect(nomTraduit).width()
-       longueur=QFontMetrics(self.label.font()).width(nomTraduit)
-       if longueur >= nomMax :
-         nouveauNom=self.formate(nomTraduit)
-         self.label.setText(nouveauNom)
-       else :   
-         self.label.setText(nomTraduit)
-       #clidedText = metrics.elidedText(text, Qt.ElideRight, label.width());
-       #if (clippedText != nomTraduit): self.label.setToolTip(nomTraduit)
-       #self.label.setText(clippedText)
-
-   #def agrandit(self):
-       # inutile pour certains widgets
-   #    if self.height() < 40 :
-   #       self.setMinimumHeight(50)
-   #       self.resize(self.width(),200)
-
-   #def mousePressEvent(self, event):
-     #print 'mousePressEvent'
-     #import inspect
-     #print (inspect.getmro(self.__class__))
-     #self.__class__.mousePressEvent(self, event)
-
-
-                                 
-   def setValeurs(self):
-      # print "passe dans setValeurs pour ", self.objSimp.nom
-      # print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        #print ("Feuille", monSimpDef,nom,objSimp)
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+
+        # on se positionne pour les icones
+        #os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__))))
+        self.setupUi(self)
+        self.prendLeFocus=0
+
+        maPolice= QFont("Times", 10)
+        self.setFont(maPolice)
+        self.setFocusPolicy(Qt.StrongFocus)
+
+        self.parentQt=parentQt
+        self.editor=self.node.editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.monSimpDef=monSimpDef
+        self.nom=nom
+        self.objSimp=objSimp
+        self.node.fenetre=self
+        self.maCommande=commande
+
+        self.aRedimensionner=0
+        self.setSuggestion()
+        self.setValeurs()
+        self.setNom()
+        self.setValide()
+        self.setIconePoubelle()
+        self.setIconesFichier()
+        self.setIconesSalome()
+        self.setIconesGenerales()
+        self.setCommentaire()
+        self.setZoneInfo()
+
+
+    def setNom(self):
+        self.debutToolTip=""
+        nomTraduit=tr(self.objSimp.nom)
+        #metrix= QFontMetrics(self.label.font())
+        #maxLongueur = self.label.width() - 2
+        #print ('______________________')
+        #print (nomTraduit)
+        #print (self.label.font().pixelSize())
+        #longueur2 = metrix.boundingRect(nomTraduit).width()
+        longueur=QFontMetrics(self.label.font()).width(nomTraduit)
+        if longueur >= nomMax :
+            nouveauNom=self.formate(nomTraduit)
+            self.label.setText(nouveauNom)
+        else :
+            self.label.setText(nomTraduit)
+        #clidedText = metrics.elidedText(text, Qt.ElideRight, label.width());
+        #if (clippedText != nomTraduit): self.label.setToolTip(nomTraduit)
+        #self.label.setText(clippedText)
+
+    #def agrandit(self):
+        # inutile pour certains widgets
+    #    if self.height() < 40 :
+    #       self.setMinimumHeight(50)
+    #       self.resize(self.width(),200)
+
+    #def mousePressEvent(self, event):
+        #print 'mousePressEvent'
+        #import inspect
+        #print (inspect.getmro(self.__class__))
+        #self.__class__.mousePressEvent(self, event)
+
+
+
+    def setValeurs(self):
+       # print "passe dans setValeurs pour ", self.objSimp.nom
+       # print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
         pass
 
-   def finCommentaire(self):
-       return ""
+    def finCommentaire(self):
+        return ""
 
-   
-   def finCommentaireListe(self):
+
+    def finCommentaireListe(self):
         commentaire=""
         mc = self.node.item.get_definition()
         d_aides = { 'TXM' : 'chaines de caracteres',
@@ -132,152 +132,149 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
                   'C'   : 'complexes'}
         type = mc.type[0]
         if not type in d_aides :
-           if mc.min == mc.max:
-               commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
-           else :
-               if mc.max != "**" :
-                  commentaire=tr("entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
-               else :
-                  commentaire=""
+            if mc.min == mc.max:
+                commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
+            else :
+                if mc.max != "**" :
+                    commentaire=tr("entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
+                else :
+                    commentaire=""
         else :
-           if mc.min == mc.max:
-               commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])+'\n'
-           elif mc.max == float('inf') :
-               commentaire=tr("Entrez une liste de ") + tr(d_aides[type])+'\n'
-           else :
-               commentaire=tr("Entrez entre ")+"\n"+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
+            if mc.min == mc.max:
+                commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])+'\n'
+            elif mc.max == float('inf') :
+                commentaire=tr("Entrez une liste de ") + tr(d_aides[type])+'\n'
+            else :
+                commentaire=tr("Entrez entre ")+"\n"+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
         aideval=self.node.item.aide()
         commentaire=commentaire +  tr(aideval)
         return str(commentaire)
 
 
-   def setSuggestion(self):
-      if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "":
-         suggere=str('<html><head/><body><p><span style=" font-size:8pt;">suggestion : ')+str(self.monSimpDef.getSug())+"</span></p></body></html>"
-         if hasattr(self,'lineEditVal'): self.lineEditVal.setToolTip(suggere)
-
-   def setCommentaire(self):
-      c  = self.debutToolTip
-      #if self.node.item.definition.validators : c+=self.node.item.definition.validators.aide()
-      self.aide=c
-      if self.objSimp.getFr() != None and self.objSimp.getFr() != "":
-          #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr().decode('latin-1','replace')+"</p></body></html>"
-          c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()
-          #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()+"</p></body></html>"
-          self.label.setToolTip(c2)
-          #self.aide=self.objSimp.getFr().decode('latin-1','ignore')+" "+c
-          self.aide=self.objSimp.getFr()+" "+c
-      else :
-         c+=self.finCommentaire()
-         if c != "" and c != None :
-            self.aide=c
-            #c=str('<html><head/><body><p><span style=" font-size:8pt; ">')+c+"</span></p></body></html>"
-            c=str('<html><head/><body><p>')+c+"</p></body></html>"
-            self.label.setToolTip(c)
-
-      if self.editor.maConfiguration.differencieSiDefaut :
+    def setSuggestion(self):
+        if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "":
+            suggere=str('<html><head/><body><p><span style=" font-size:8pt;">suggestion : ')+str(self.monSimpDef.getSug())+"</span></p></body></html>"
+            if hasattr(self,'lineEditVal'): self.lineEditVal.setToolTip(suggere)
+
+    def setCommentaire(self):
+        c  = self.debutToolTip
+        #if self.node.item.definition.validators : c+=self.node.item.definition.validators.aide()
+        self.aide=c
+        if self.objSimp.getFr() != None and self.objSimp.getFr() != "":
+            #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr().decode('latin-1','replace')+"</p></body></html>"
+            c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()
+            #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()+"</p></body></html>"
+            self.label.setToolTip(c2)
+            #self.aide=self.objSimp.getFr().decode('latin-1','ignore')+" "+c
+            self.aide=self.objSimp.getFr()+" "+c
+        else :
+            c+=self.finCommentaire()
+            if c != "" and c != None :
+                self.aide=c
+                #c=str('<html><head/><body><p><span style=" font-size:8pt; ">')+c+"</span></p></body></html>"
+                c=str('<html><head/><body><p>')+c+"</p></body></html>"
+                self.label.setToolTip(c)
+
+        if self.editor.maConfiguration.differencieSiDefaut :
             self.label.setToolTip('defaut : ' + tr(str(self.node.item.object.definition.defaut)))
 
 
 
-   def showEvent(self, event):
-      if self.prendLeFocus==1 :
-         self.activateWindow()
-         "il faut deriver le showEvent pour" , self.nom
-         self.prendLeFocus=0
-      QWidget.showEvent(self,event)
-
-   def aideALaSaisie(self):
-      mc = self.node.item.get_definition()
-      mctype = mc.type[0]
-      d_aides = { 'TXM' : tr(u"chaine de caracteres"),
-                  'R'   : tr("reel"),
-                  'I'   : tr("entier"),
-                  'C'   : tr("complexe"),
-                  'Matrice' : tr(u'Matrice'),
-                  'Fichier' : tr(u'fichier'),
-                  'FichierNoAbs' : tr(u'fichier existant'),
-                  'Repertoire' : tr(u'repertoire')}
-
-      if mc.min == mc.max: commentaire=tr("Entrez ")+" "+str(mc.min)+" "
-      else :               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)
-
-      try :
-         if issubclass(mctype,object) : ctype = getattr(mctype, 'help_message', tr("Type de base inconnu"))
-         else : ctype = d_aides.get(mctype, tr("Type de base inconnu"))
-      except:                        
-         ctype = d_aides.get(mctype, tr("Type de base inconnu"))
-      if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype)
-
-      commentaire+=ctype
-      if mc.max!=1 : commentaire+="s" 
-      return commentaire
-
-   def setZoneInfo(self):
-      # info=str(self.nom)+'  '
-      # if self.monSimpDef.getFr() != None and self.monSimpDef.getFr() != "": info+=self.monSimpDef.getSug() +" "
-      # if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "": info+="Valeur suggeree : "self.monSimpDef.getSug()
-      pass
-
-   def reaffiche(self):
-
-      if self.editor.jdc.aReafficher==True :
-         self.parentQt.reaffiche()
-
-         #PN PN PN pas satisfaisant
-         #nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
-         #print nodeAVoir.fenetre
-         #print "nodeAVoir.fenetre.isVisible()", nodeAVoir.fenetre.isVisible()
-         #if nodeAVoir.fenetre.isVisible() : return
-         #self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir)
-         #nodeAVoir.fenetre.setFocus()
-         # return  # on est bien postionne
-
-         if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
-            nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
-            try :
-               index=self.editor.fenetreCentraleAffichee.listeAffichageWidget.index(nodeAVoir.fenetre.AAfficher)
-               if (index==len(self.editor.fenetreCentraleAffichee.listeAffichageWidget)-1) :
-                  try :
-                     nodeAVoir.fenetre.setValeursApresBouton()
-                  except :
-                     pass
-               else :
-                  self.editor.fenetreCentraleAffichee.afficheSuivant(nodeAVoir.fenetre.AAfficher)
-            except :
-               pass
-      else :
-         if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
-            try :
-               self.setValeursApresBouton()
-            except :
-               pass
-            self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
-         else :
-            if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
-
-   def reaffichePourDeplier(self):
-      self.parentQt.reaffiche()
-
-   def rendVisible(self):
-       pass
-
-   #def enterEvent(self,event):
-   #   print "je passe dans enterEvent", self.nom
-   #   QWidget.enterEvent(self,event)
-
-   def traiteClicSurLabel(self,texte):
-       #aide=self.aide.encode('latin-1', 'ignore').decode('latin-1')+"\n"+self.aideALaSaisie().encode('latin-1', 'ignore').decode('latin-1')
-       try :
-          aide=self.aide+"\n"+self.aideALaSaisie()
-       except :
-          aide=self.aideALaSaisie()
-       self.editor.afficheCommentaire(aide)
-
-   def formate(self,t):
-       l=len(t)//2
-       newText=t[0:l]+'-\n'+t[l:]
-       return newText
-      
-
+    def showEvent(self, event):
+        if self.prendLeFocus==1 :
+            self.activateWindow()
+            "il faut deriver le showEvent pour" , self.nom
+            self.prendLeFocus=0
+        QWidget.showEvent(self,event)
+
+    def aideALaSaisie(self):
+        mc = self.node.item.get_definition()
+        mctype = mc.type[0]
+        d_aides = { 'TXM' : tr(u"chaine de caracteres"),
+                    'R'   : tr("reel"),
+                    'I'   : tr("entier"),
+                    'C'   : tr("complexe"),
+                    'Matrice' : tr(u'Matrice'),
+                    'Fichier' : tr(u'fichier'),
+                    'FichierNoAbs' : tr(u'fichier existant'),
+                    'Repertoire' : tr(u'repertoire')}
+
+        if mc.min == mc.max: commentaire=tr("Entrez ")+" "+str(mc.min)+" "
+        else :               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)
+
+        try :
+            if issubclass(mctype,object) : ctype = getattr(mctype, 'help_message', tr("Type de base inconnu"))
+            else : ctype = d_aides.get(mctype, tr("Type de base inconnu"))
+        except:
+            ctype = d_aides.get(mctype, tr("Type de base inconnu"))
+        if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype)
+
+        commentaire+=ctype
+        if mc.max!=1 : commentaire+="s"
+        return commentaire
+
+    def setZoneInfo(self):
+        # info=str(self.nom)+'  '
+        # if self.monSimpDef.getFr() != None and self.monSimpDef.getFr() != "": info+=self.monSimpDef.getSug() +" "
+        # if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "": info+="Valeur suggeree : "self.monSimpDef.getSug()
+        pass
+
+    def reaffiche(self):
+
+        if self.editor.jdc.aReafficher==True :
+            self.parentQt.reaffiche()
+
+            #PN PN PN pas satisfaisant
+            #nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+            #print nodeAVoir.fenetre
+            #print "nodeAVoir.fenetre.isVisible()", nodeAVoir.fenetre.isVisible()
+            #if nodeAVoir.fenetre.isVisible() : return
+            #self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir)
+            #nodeAVoir.fenetre.setFocus()
+            # return  # on est bien postionne
+
+            if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
+                nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+                try :
+                    index=self.editor.fenetreCentraleAffichee.listeAffichageWidget.index(nodeAVoir.fenetre.AAfficher)
+                    if (index==len(self.editor.fenetreCentraleAffichee.listeAffichageWidget)-1) :
+                        try :
+                            nodeAVoir.fenetre.setValeursApresBouton()
+                        except :
+                            pass
+                    else :
+                        self.editor.fenetreCentraleAffichee.afficheSuivant(nodeAVoir.fenetre.AAfficher)
+                except :
+                    pass
+        else :
+            if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
+                try :
+                    self.setValeursApresBouton()
+                except :
+                    pass
+                self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+            else :
+                if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
+
+    def reaffichePourDeplier(self):
+        self.parentQt.reaffiche()
+
+    def rendVisible(self):
+        pass
+
+    #def enterEvent(self,event):
+    #   print "je passe dans enterEvent", self.nom
+    #   QWidget.enterEvent(self,event)
+
+    def traiteClicSurLabel(self,texte):
+        #aide=self.aide.encode('latin-1', 'ignore').decode('latin-1')+"\n"+self.aideALaSaisie().encode('latin-1', 'ignore').decode('latin-1')
+        try :
+            aide=self.aide+"\n"+self.aideALaSaisie()
+        except :
+            aide=self.aideALaSaisie()
+        self.editor.afficheCommentaire(aide)
+
+    def formate(self,t):
+        l=len(t)//2
+        newText=t[0:l]+'-\n'+t[l:]
+        return newText
index 62f2d0c248c9e7adff1b2fe6f3850f5ec0742f4c..d28c498e307c26676e3cd0bcca9c6a2cb3f66f87 100644 (file)
@@ -21,8 +21,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types,os,re,sys
@@ -40,327 +40,327 @@ listeSuffixe=('bmp','png','jpg' ,'txt','med')
 
 class FacultatifOuOptionnel(object):
 
-  def setReglesEtAide(self):
-      listeRegles=()
-      try :
-         listeRegles     = self.node.item.getRegles()
-      except :
-         pass
-      if hasattr(self,"RBRegle"):
-        if listeRegles==() : self.RBRegle.close() 
+    def setReglesEtAide(self):
+        listeRegles=()
+        try :
+            listeRegles     = self.node.item.getRegles()
+        except :
+            pass
+        if hasattr(self,"RBRegle"):
+            if listeRegles==() : self.RBRegle.close()
+            else :
+                icon3=QIcon(self.repIcon+"/lettreRblanc30.png")
+                self.RBRegle.setIcon(icon3)
+                self.RBRegle.clicked.connect(self.viewRegles)
+
+        cle_doc=None
+        if not hasattr(self,"RBInfo"):return
+        icon=QIcon(self.repIcon+"/point-interrogation30.png")
+        self.RBInfo.setIcon(icon)
+
+        from .monWidgetCommande import MonWidgetCommande
+        if isinstance(self,MonWidgetCommande) and self.editor.code =="MAP":
+            self.cle_doc = self.chercheDocMAP()
         else :
-           icon3=QIcon(self.repIcon+"/lettreRblanc30.png")
-           self.RBRegle.setIcon(icon3)
-           self.RBRegle.clicked.connect(self.viewRegles)
-
-      cle_doc=None
-      if not hasattr(self,"RBInfo"):return
-      icon=QIcon(self.repIcon+"/point-interrogation30.png")
-      self.RBInfo.setIcon(icon)
-
-      from .monWidgetCommande import MonWidgetCommande
-      if isinstance(self,MonWidgetCommande) and self.editor.code =="MAP":
-         self.cle_doc = self.chercheDocMAP()
-      else :
-         self.cle_doc = self.node.item.getDocu()
-      if self.cle_doc == None  : self.RBInfo.close()
-      else : self.RBInfo.clicked.connect (self.viewDoc)
-
-
-  def chercheDocMAP(self):
-      try :
-        clef=self.editor.maConfiguration.adresse+"/"
-      except :
-        return None
-      for k in self.editor.readercata.cata.JdC.dict_groupes:
-          if self.obj.nom in self.editor.readercata.cata.JdC.dict_groupes[k]:
-             clef+=k
-             break
-      clef+="/"+ self.obj.nom[0:-5].lower()+"/spec_"+self.obj.nom[0:-5].lower()+".html"
-
-      return clef
-  def viewDoc(self):
-      try :
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.cle_doc
-          else                                 : cmd="start "+self.cle_doc
-          os.system(cmd)
-      except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
-
-  def viewRegles(self):
-      self.node.appellebuildLBRegles()
-
-
-  def setIconePoubelle(self):
-      if not(hasattr(self,"RBPoubelle")):return
-
-      if self.node.item.object.isOblig()  and not( hasattr(self.node.item.object,'isDeletable') ): 
-         icon=QIcon(self.repIcon+"/deleteRondVide.png")
-         self.RBPoubelle.setIcon(icon)
-         return
-      icon=QIcon(self.repIcon+"/deleteRond.png")
-      self.RBPoubelle.setIcon(icon)
-      self.RBPoubelle.clicked.connect(self.aDetruire)
-
-  def setIconesSalome(self):
-       if not (hasattr(self,"RBSalome")): return
-       from Accas import SalomeEntry
-       mc = self.node.item.get_definition()
-       mctype = mc.type[0]
-       enable_salome_selection = self.editor.salome and \
-         (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
-         (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
-
-       if enable_salome_selection:
-          icon=QIcon(self.repIcon+"/flecheSalome.png")
-          self.RBSalome.setIcon(icon)
-          self.RBSalome.pressed.connect(self.BSalomePressed)
+            self.cle_doc = self.node.item.getDocu()
+        if self.cle_doc == None  : self.RBInfo.close()
+        else : self.RBInfo.clicked.connect (self.viewDoc)
+
+
+    def chercheDocMAP(self):
+        try :
+            clef=self.editor.maConfiguration.adresse+"/"
+        except :
+            return None
+        for k in self.editor.readercata.cata.JdC.dict_groupes:
+            if self.obj.nom in self.editor.readercata.cata.JdC.dict_groupes[k]:
+                clef+=k
+                break
+        clef+="/"+ self.obj.nom[0:-5].lower()+"/spec_"+self.obj.nom[0:-5].lower()+".html"
+
+        return clef
+
+    def viewDoc(self):
+        try :
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.cle_doc
+            else                          : cmd="start "+self.cle_doc
+            os.system(cmd)
+        except:
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+
+    def viewRegles(self):
+        self.node.appellebuildLBRegles()
+
+
+    def setIconePoubelle(self):
+        if not(hasattr(self,"RBPoubelle")):return
+
+        if self.node.item.object.isOblig()  and not( hasattr(self.node.item.object,'isDeletable') ):
+            icon=QIcon(self.repIcon+"/deleteRondVide.png")
+            self.RBPoubelle.setIcon(icon)
+            return
+        icon=QIcon(self.repIcon+"/deleteRond.png")
+        self.RBPoubelle.setIcon(icon)
+        self.RBPoubelle.clicked.connect(self.aDetruire)
+
+    def setIconesSalome(self):
+        if not (hasattr(self,"RBSalome")): return
+        from Accas import SalomeEntry
+        mc = self.node.item.get_definition()
+        mctype = mc.type[0]
+        enable_salome_selection = self.editor.salome and \
+          (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
+          (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
+
+        if enable_salome_selection:
+            icon=QIcon(self.repIcon+"/flecheSalome.png")
+            self.RBSalome.setIcon(icon)
+            self.RBSalome.pressed.connect(self.BSalomePressed)
 
 #PNPN --> Telemac A revoir surement
 # cela ou le catalogue grpma ou salomeEntry
-          if not(('grma' in repr(mctype)) or ('grno' in repr(mctype))) or not(self.editor.salome): 
-             if hasattr(self,"RBSalomeVue") : self.RBSalomeVue.close()
-          else : 
-             icon1=QIcon(self.repIcon+"/eye.png")
-             self.RBSalomeVue.setIcon(icon1)
-             self.RBSalomeVue.clicked.connect(self.BView2DPressed)
-       else:
-          self.RBSalome.close()
-          self.RBSalomeVue.close()
-
-     
-  def setIconesFichier(self):
-       if not ( hasattr(self,"BFichier")): return
-       mc = self.node.item.get_definition()
-       mctype = mc.type[0]
-       if mctype == "FichierOuRepertoire":
-          self.BFichierOuRepertoire=self.BFichier
-          self.BFichierOuRepertoire.clicked.connect(self.BFichierOuRepertoirePressed)
-          self.BVisuFichier.close()
-       elif mctype == "Repertoire":
-          self.BRepertoire=self.BFichier
-          self.BRepertoire.clicked.connect(self.BRepertoirePressed)
-          self.BVisuFichier.close()
-       else :
-          self.BFichier.clicked.connect(self.BFichierPressed)
-          self.BVisuFichier.clicked.connect(self.BFichierVisu)
-
-
-
-  def setIconesGenerales(self):
-      repIcon=self.node.editor.appliEficas.repIcon
-      if hasattr(self,"BVisuListe") :
-         fichier=os.path.join(repIcon, 'plusnode.png')
-         icon = QIcon(fichier)
-         self.BVisuListe.setIcon(icon)
-      if hasattr(self,"RBDeplie") :
-         fichier=os.path.join(repIcon, 'plusnode.png')
-         icon = QIcon(fichier)
-         self.RBDeplie.setIcon(icon)
-      if hasattr(self,"RBPlie") :
-         fichier=os.path.join(repIcon, 'minusnode.png')
-         icon = QIcon(fichier)
-         self.RBPlie.setIcon(icon)
-      if hasattr(self,"BVisuFichier") :
-         fichier=os.path.join(repIcon, 'visuFichier.png')
-         icon = QIcon(fichier)
-         self.BVisuFichier.setIcon(icon)
-
-      
-
-  def setRun(self):
-      if hasattr(self.editor.appliEficas, 'mesScripts') :
-         if self.editor.code in  self.editor.appliEficas.mesScripts :
-            self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
-            if self.obj.nom in self.dict_commandes_mesScripts :
-               self.ajoutScript()
-               icon=QIcon(self.repIcon+"/roue.png")
-               if hasattr(self,"RBRun"):self.RBRun.setIcon(icon)
-               return
-      if hasattr(self,"RBRun"): self.RBRun.close()
-      if hasattr(self,"CBScripts"): self.CBScripts.close()
-
-
-  def aDetruire(self):
-      self.node.delete()
-
-  def setValide(self):
-      if not(hasattr (self,'RBValide')) : return
-      couleur=self.node.item.getIconName()
-      monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
-      self.RBValide.setIcon(monIcone)
-
-  # il faut chercher la bonne fenetre
-  def rendVisible(self):
-      #print "je passe par rendVisible de FacultatifOuOptionnel"
-      #print self
-      #print self.node.fenetre
-      #print "return pour etre sure"
-      return
-      #PNPN
-      newNode=self.node.treeParent.chercheNoeudCorrespondant(self.node.item.object)
-      #print newNode
-      self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(newNode.fenetre)
-      #newNode.fenetre.setFocus()
-
-
-  def ajoutScript(self):
+            if not(('grma' in repr(mctype)) or ('grno' in repr(mctype))) or not(self.editor.salome):
+                if hasattr(self,"RBSalomeVue") : self.RBSalomeVue.close()
+            else :
+                icon1=QIcon(self.repIcon+"/eye.png")
+                self.RBSalomeVue.setIcon(icon1)
+                self.RBSalomeVue.clicked.connect(self.BView2DPressed)
+        else:
+            self.RBSalome.close()
+            self.RBSalomeVue.close()
+
+
+    def setIconesFichier(self):
+        if not ( hasattr(self,"BFichier")): return
+        mc = self.node.item.get_definition()
+        mctype = mc.type[0]
+        if mctype == "FichierOuRepertoire":
+            self.BFichierOuRepertoire=self.BFichier
+            self.BFichierOuRepertoire.clicked.connect(self.BFichierOuRepertoirePressed)
+            self.BVisuFichier.close()
+        elif mctype == "Repertoire":
+            self.BRepertoire=self.BFichier
+            self.BRepertoire.clicked.connect(self.BRepertoirePressed)
+            self.BVisuFichier.close()
+        else :
+            self.BFichier.clicked.connect(self.BFichierPressed)
+            self.BVisuFichier.clicked.connect(self.BFichierVisu)
+
+
+
+    def setIconesGenerales(self):
+        repIcon=self.node.editor.appliEficas.repIcon
+        if hasattr(self,"BVisuListe") :
+            fichier=os.path.join(repIcon, 'plusnode.png')
+            icon = QIcon(fichier)
+            self.BVisuListe.setIcon(icon)
+        if hasattr(self,"RBDeplie") :
+            fichier=os.path.join(repIcon, 'plusnode.png')
+            icon = QIcon(fichier)
+            self.RBDeplie.setIcon(icon)
+        if hasattr(self,"RBPlie") :
+            fichier=os.path.join(repIcon, 'minusnode.png')
+            icon = QIcon(fichier)
+            self.RBPlie.setIcon(icon)
+        if hasattr(self,"BVisuFichier") :
+            fichier=os.path.join(repIcon, 'visuFichier.png')
+            icon = QIcon(fichier)
+            self.BVisuFichier.setIcon(icon)
+
+
+
+    def setRun(self):
+        if hasattr(self.editor.appliEficas, 'mesScripts') :
+            if self.editor.code in  self.editor.appliEficas.mesScripts :
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                if self.obj.nom in self.dict_commandes_mesScripts :
+                    self.ajoutScript()
+                    icon=QIcon(self.repIcon+"/roue.png")
+                    if hasattr(self,"RBRun"):self.RBRun.setIcon(icon)
+                    return
+        if hasattr(self,"RBRun"): self.RBRun.close()
+        if hasattr(self,"CBScripts"): self.CBScripts.close()
+
+
+    def aDetruire(self):
+        self.node.delete()
+
+    def setValide(self):
+        if not(hasattr (self,'RBValide')) : return
+        couleur=self.node.item.getIconName()
+        monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
+        self.RBValide.setIcon(monIcone)
+
+    # il faut chercher la bonne fenetre
+    def rendVisible(self):
+        #print "je passe par rendVisible de FacultatifOuOptionnel"
+        #print self
+        #print self.node.fenetre
+        #print "return pour etre sure"
+        return
+        #PNPN
+        newNode=self.node.treeParent.chercheNoeudCorrespondant(self.node.item.object)
+        #print newNode
+        self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(newNode.fenetre)
+        #newNode.fenetre.setFocus()
+
+
+    def ajoutScript(self):
         if not hasattr(self,'CBScripts') : return # Cas des Widgets Plies
         self.dictCommandes={}
         listeCommandes=self.dict_commandes_mesScripts[self.obj.nom]
         if type(listeCommandes) != tuple: listeCommandes=(listeCommandes,)
         i=0
         for commande in listeCommandes :
-          conditionSalome=commande[3]
-          if (self.appliEficas.salome == 0 and conditionSalome == True): continue
-          self.CBScripts.addItem(commande[1])
-          self.dictCommandes[commande[1]]=i
-          i=i+1
+            conditionSalome=commande[3]
+            if (self.appliEficas.salome == 0 and conditionSalome == True): continue
+            self.CBScripts.addItem(commande[1])
+            self.dictCommandes[commande[1]]=i
+            i=i+1
         self.CBScripts.activated.connect(self.choixSaisi)
 
-  def choixSaisi(self):
-      fction=str(self.CBScripts.currentText())
-      numero= self.dictCommandes[fction]
-      self.node.appelleFonction(numero,nodeTraite=self.node)
-      #self.reaffiche()
+    def choixSaisi(self):
+        fction=str(self.CBScripts.currentText())
+        numero= self.dictCommandes[fction]
+        self.node.appelleFonction(numero,nodeTraite=self.node)
+        #self.reaffiche()
 
 class ContientIcones(object):
 
-  def BFichierVisu(self):
-       fichier=self.lineEditVal.text()
-       if fichier == None or str(fichier)=="" : return
-       from .monViewTexte import ViewText
-       try :
-         if sys.platform[0:5]=="linux" :
-           #cmd="xdg-open "+ str(fichier)
-           #changer pour marcher dans l'EDC
-           #cmd="gedit "+ str(fichier)
-           from os.path import splitext
-           fileName,extension = splitext(fichier)
-           if extension in  self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions:
-              cmd=self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions[extension] + " " + str(fichier)
-           else:  cmd="xdg-open "+ str(fichier)
-           os.system(cmd)
-         else                         :
-           os.startfile(str(fichier)) 
-       except:
-         try :
-            fp=open(fichier)
-            txt=fp.read()
-            nomFichier=QFileInfo(fichier).baseName()
-            maVue=ViewText(self,entete=nomFichier)
-            maVue.setText(txt)
-            maVue.show()
-            fp.close()
-         except:
-            QMessageBox.warning( None,
-                       tr("Visualisation Fichier "),
-                       tr("Impossibilite d'afficher le Fichier"),)
-
-  def BFichierPressed(self):
-      mctype = self.node.item.get_definition().type
-      if len(mctype) > 1:
-          filters = mctype[1]
-      elif hasattr(mctype[0], "filters"):
-          filters = mctype[0].filters
-      else:
-          filters = ""
-      if len(mctype) > 2 and mctype[2] == "Sauvegarde":
-          fichier = QFileDialog.getSaveFileName(self.appliEficas,
-                              tr('Use File'),
-                              self.appliEficas.maConfiguration.savedir,
-                              filters)
-      else:
-          #print(filters)
-          fichier = QFileDialog.getOpenFileName(self.appliEficas,
-                              tr('Ouvrir Fichier'),
-                              self.appliEficas.maConfiguration.savedir,
-                              filters)
-
-      fichier=fichier[0]
-      if not(fichier == ""):
-         ulfile = os.path.abspath(fichier)
-         self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-         self.lineEditVal.setText(fichier)
-         self.editor.afficheCommentaire(tr("Fichier selectionne"))
-         self.LEvaleurPressed()
-         if (QFileInfo(fichier).suffix() in listeSuffixe ):
-             self.image=fichier
-             if (not hasattr(self,"BSelectInFile")):
-               try :
-                 self.BSelectInFile = QPushButton(self)
-                 self.BSelectInFile.setMinimumSize(QSize(140,40))
-                 self.BSelectInFile.setObjectName("BSelectInFile")
-                 self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1)
-                 self.BSelectInFile.setText(tr("Selection"))
-                 self.BSelectInFile.clicked.connect(self.BSelectInFilePressed)
-               except :
-                pass
-             else :
-               self.BSelectInFile.setVisible(1)
-               
-         elif hasattr(self, "BSelectInFile"):
-             self.BSelectInFile.setVisible(0)
-
-  def BFichierOuRepertoirePressed(self):
-      self.fileName=""
-      self.file_dialog=QFileDialog()
-      self.file_dialog.setFileMode(QFileDialog.Directory);
-      self.file_dialog.setFileMode(QFileDialog.Directory|QFileDialog.ExistingFiles)
-      self.file_dialog.setOption(QFileDialog.DontUseNativeDialog,True);
-      self.file_dialog.setWindowTitle('Choose File or Directory')
-      self.explore(self.file_dialog)
-      self.file_dialog.exec_()
-      if self.fileName == "" : return
-      self.lineEditVal.setText(self.fileName)
-      self.LEvaleurPressed()
-     
-
-  def explore(self,widget):
-      for c in widget.children() :
-          if isinstance(c, QTreeView) :
-             c.clicked.connect (self.changeBoutonOpen)
-             self.monTreeView=c
-          try :
-             if c.text() == "&Open" : self.monBoutonOpen=c
-          except : pass
-          self.explore(c) 
-
-
-  def changeBoutonOpen(self):
-      self.monBoutonOpen.setEnabled(True)
-      self.monBoutonOpen.setText("Choose")
-      self.monBoutonOpen.clicked.connect(self.monBoutonOpenClicked)
-      index = self.monTreeView.currentIndex();
-      self.fileName2 = self.monTreeView.model().data(index)
-
-  def monBoutonOpenClicked(self):
-      try :
-        self.fileName=self.file_dialog.selectedFiles()[0]
-      except :
-         self.fileName=self.file_dialog.directory().absolutePath()
-      self.file_dialog.close()
-      self.file_dialog=None
-
-  def BRepertoirePressed(self):
-      directory = QFileDialog.getExistingDirectory(self.appliEficas,
-            directory = self.appliEficas.maConfiguration.savedir,
-            options = QFileDialog.ShowDirsOnly)
-
-      if not (directory == "") :
-         absdir = os.path.abspath(directory)
-         self.appliEficas.maConfiguration.savedir = os.path.dirname(absdir)
-         self.lineEditVal.setText(directory)
-         self.LEvaleurPressed()
-
-  def BSelectInFilePressed(self):
-      from monSelectImage import MonSelectImage
-      MonSelectImage(file=self.image,parent=self).show()
-
-          
-
-  def BSalomePressed(self):
+    def BFichierVisu(self):
+        fichier=self.lineEditVal.text()
+        if fichier == None or str(fichier)=="" : return
+        from .monViewTexte import ViewText
+        try :
+            if sys.platform[0:5]=="linux" :
+                #cmd="xdg-open "+ str(fichier)
+                #changer pour marcher dans l'EDC
+                #cmd="gedit "+ str(fichier)
+                from os.path import splitext
+                fileName,extension = splitext(fichier)
+                if extension in  self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions:
+                    cmd=self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions[extension] + " " + str(fichier)
+                else:  cmd="xdg-open "+ str(fichier)
+                os.system(cmd)
+            else                          :
+                os.startfile(str(fichier))
+        except:
+            try :
+                fp=open(fichier)
+                txt=fp.read()
+                nomFichier=QFileInfo(fichier).baseName()
+                maVue=ViewText(self,entete=nomFichier)
+                maVue.setText(txt)
+                maVue.show()
+                fp.close()
+            except:
+                QMessageBox.warning( None,
+                           tr("Visualisation Fichier "),
+                           tr("Impossibilite d'afficher le Fichier"),)
+
+    def BFichierPressed(self):
+        mctype = self.node.item.get_definition().type
+        if len(mctype) > 1:
+            filters = mctype[1]
+        elif hasattr(mctype[0], "filters"):
+            filters = mctype[0].filters
+        else:
+            filters = ""
+        if len(mctype) > 2 and mctype[2] == "Sauvegarde":
+            fichier = QFileDialog.getSaveFileName(self.appliEficas,
+                                tr('Use File'),
+                                self.appliEficas.maConfiguration.savedir,
+                                filters)
+        else:
+            #print(filters)
+            fichier = QFileDialog.getOpenFileName(self.appliEficas,
+                                tr('Ouvrir Fichier'),
+                                self.appliEficas.maConfiguration.savedir,
+                                filters)
+
+        fichier=fichier[0]
+        if not(fichier == ""):
+            ulfile = os.path.abspath(fichier)
+            self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            self.lineEditVal.setText(fichier)
+            self.editor.afficheCommentaire(tr("Fichier selectionne"))
+            self.LEvaleurPressed()
+            if (QFileInfo(fichier).suffix() in listeSuffixe ):
+                self.image=fichier
+                if (not hasattr(self,"BSelectInFile")):
+                    try :
+                        self.BSelectInFile = QPushButton(self)
+                        self.BSelectInFile.setMinimumSize(QSize(140,40))
+                        self.BSelectInFile.setObjectName("BSelectInFile")
+                        self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1)
+                        self.BSelectInFile.setText(tr("Selection"))
+                        self.BSelectInFile.clicked.connect(self.BSelectInFilePressed)
+                    except :
+                        pass
+                else :
+                    self.BSelectInFile.setVisible(1)
+
+            elif hasattr(self, "BSelectInFile"):
+                self.BSelectInFile.setVisible(0)
+
+    def BFichierOuRepertoirePressed(self):
+        self.fileName=""
+        self.file_dialog=QFileDialog()
+        self.file_dialog.setFileMode(QFileDialog.Directory);
+        self.file_dialog.setFileMode(QFileDialog.Directory|QFileDialog.ExistingFiles)
+        self.file_dialog.setOption(QFileDialog.DontUseNativeDialog,True);
+        self.file_dialog.setWindowTitle('Choose File or Directory')
+        self.explore(self.file_dialog)
+        self.file_dialog.exec_()
+        if self.fileName == "" : return
+        self.lineEditVal.setText(self.fileName)
+        self.LEvaleurPressed()
+
+
+    def explore(self,widget):
+        for c in widget.children() :
+            if isinstance(c, QTreeView) :
+                c.clicked.connect (self.changeBoutonOpen)
+                self.monTreeView=c
+            try :
+                if c.text() == "&Open" : self.monBoutonOpen=c
+            except : pass
+            self.explore(c)
+
+
+    def changeBoutonOpen(self):
+        self.monBoutonOpen.setEnabled(True)
+        self.monBoutonOpen.setText("Choose")
+        self.monBoutonOpen.clicked.connect(self.monBoutonOpenClicked)
+        index = self.monTreeView.currentIndex();
+        self.fileName2 = self.monTreeView.model().data(index)
+
+    def monBoutonOpenClicked(self):
+        try :
+            self.fileName=self.file_dialog.selectedFiles()[0]
+        except :
+            self.fileName=self.file_dialog.directory().absolutePath()
+        self.file_dialog.close()
+        self.file_dialog=None
+
+    def BRepertoirePressed(self):
+        directory = QFileDialog.getExistingDirectory(self.appliEficas,
+              directory = self.appliEficas.maConfiguration.savedir,
+              options = QFileDialog.ShowDirsOnly)
+
+        if not (directory == "") :
+            absdir = os.path.abspath(directory)
+            self.appliEficas.maConfiguration.savedir = os.path.dirname(absdir)
+            self.lineEditVal.setText(directory)
+            self.LEvaleurPressed()
+
+    def BSelectInFilePressed(self):
+        from monSelectImage import MonSelectImage
+        MonSelectImage(file=self.image,parent=self).show()
+
+
+
+    def BSalomePressed(self):
         self.editor.afficheCommentaire("")
         selection=[]
         commentaire=""
@@ -374,34 +374,34 @@ class ContientIcones(object):
         if 'grma' in repr(kwType): kwType = "GROUP_MA"
 
         if kwType in ("GROUP_NO","GROUP_MA"):
-           selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor)
+            selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor)
 
         mc = self.node.item.get_definition()
 
         if  (isinstance(mc.type,tuple) and len(mc.type) > 1 and "(*.med)" in mc.type[1] ):
-           selection, commentaire = self.appliEficas.selectMeshFile(editor=self.editor)
-           #print selection, commentaire
-           if commentaire != "" : 
-                  QMessageBox.warning( None,
-                  tr("Export Med vers Fichier "),
-                  tr("Impossibilite d exporter le Fichier"),)
-                  return
-           else :
-                  self.lineEditVal.setText(str(selection))
-                  return
+            selection, commentaire = self.appliEficas.selectMeshFile(editor=self.editor)
+            #print selection, commentaire
+            if commentaire != "" :
+                QMessageBox.warning( None,
+                tr("Export Med vers Fichier "),
+                tr("Impossibilite d exporter le Fichier"),)
+                return
+            else :
+                self.lineEditVal.setText(str(selection))
+                return
 
         from Accas import SalomeEntry
         if inspect.isclass(kwType) and issubclass(kwType, SalomeEntry):
-           selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor)
+            selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor)
 
         if commentaire !="" :
             self.editor.afficheInfos(tr(str(commentaire)))
         if selection == [] : return
 
         min,max=self.node.item.getMinMax()
-        if max > 1 : 
-           self.ajoutNValeur(selection)
-           return
+        if max > 1 :
+            self.ajoutNValeur(selection)
+            return
 
         monTexte=""
         for geomElt in selection: monTexte=geomElt+","
@@ -409,21 +409,20 @@ class ContientIcones(object):
         self.lineEditVal.setText(str(monTexte))
         self.LEvaleurPressed()
 
-  def BView2DPressed(self):
+    def BView2DPressed(self):
         try :
-          # cas d un Simp de base
-          valeur=self.lineEditVal.text()
+            # cas d un Simp de base
+            valeur=self.lineEditVal.text()
         except :
-          valeur=self.textSelected
+            valeur=self.textSelected
         valeur = str(valeur)
         if valeur == str("") : return
         if valeur :
-           ok, msgError = self.appliEficas.displayShape(valeur)
-           if not ok:
-              self.editor.afficheInfos(msgError,Qt.red)
+            ok, msgError = self.appliEficas.displayShape(valeur)
+            if not ok:
+                self.editor.afficheInfos(msgError,Qt.red)
 
-  def BParametresPressed(self):
+    def BParametresPressed(self):
         liste=self.node.item.getListeParamPossible()
         from monListeParamPanel import MonListeParamPanel
         MonListeParamPanel(liste=liste,parent=self).show()
-
index 1f405c1fd6dbdf7c10958fa00d6d134a724b2109..86d775808269bc425bbf8a1289133a03f8f26a32 100644 (file)
@@ -21,8 +21,8 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types,os
@@ -40,302 +40,302 @@ from InterfaceQT4.monViewTexte   import ViewText
 # ---------------------- #
 class LECustom(QLineEdit):
 # ---------------------- #
- def __init__(self,parent,parentQt,i):
-     """
-     Constructor
-     """
-     QLineEdit.__init__(self,parent)
-
-     self.parentQt=parentQt
-     self.num=i
-     self.dansUnTuple=False
-     self.numDsLaListe=-1
-     self.parentTuple=None
-     self.valeur=None
-     self.aEuLeFocus=True
-
- def focusInEvent(self,event):
-     #print ("dans focusInEvent de LECustom")
-     self.parentQt.aEuLeFocus=True
-     self.aEuLeFocus=True
-     self.parentQt.lineEditEnCours=self
-     self.parentQt.numLineEditEnCours=self.num
-     self.parentQt.textSelected=self.text()
-     self.setStyleSheet("border: 2px solid gray")
-     QLineEdit.focusInEvent(self,event)
-
- def focusOutEvent(self,event):
-     #print ('focusOutEvent', self.aEuLeFocus)
-     self.setStyleSheet("border: 0px")
-     if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
-     elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
-     else                   : self.setStyleSheet("background:rgb(235,235,235)")
-     if self.aEuLeFocus:
-        self.aEuLeFocus=False
-        self.litValeur()
-        if self.dansUnTuple : self.parentTuple.getValeur()
-     QLineEdit.focusOutEvent(self,event)
-
-
- def litValeur(self):
-     #print ("dans litValeur de LECustom")
-     self.aEuLeFocus=False
-     val=str(self.text())
-     if str(val)=="" or val==None :
+    def __init__(self,parent,parentQt,i):
+        """
+        Constructor
+        """
+        QLineEdit.__init__(self,parent)
+
+        self.parentQt=parentQt
+        self.num=i
+        self.dansUnTuple=False
+        self.numDsLaListe=-1
+        self.parentTuple=None
         self.valeur=None
-        return
-     try :
-        valeur=eval(val,{})
-     except :
+        self.aEuLeFocus=True
+
+    def focusInEvent(self,event):
+        #print ("dans focusInEvent de LECustom")
+        self.parentQt.aEuLeFocus=True
+        self.aEuLeFocus=True
+        self.parentQt.lineEditEnCours=self
+        self.parentQt.numLineEditEnCours=self.num
+        self.parentQt.textSelected=self.text()
+        self.setStyleSheet("border: 2px solid gray")
+        QLineEdit.focusInEvent(self,event)
+
+    def focusOutEvent(self,event):
+        #print ('focusOutEvent', self.aEuLeFocus)
+        self.setStyleSheet("border: 0px")
+        if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
+        elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
+        else                   : self.setStyleSheet("background:rgb(235,235,235)")
+        if self.aEuLeFocus:
+            self.aEuLeFocus=False
+            self.litValeur()
+            if self.dansUnTuple : self.parentTuple.getValeur()
+        QLineEdit.focusOutEvent(self,event)
+
+
+    def litValeur(self):
+        #print ("dans litValeur de LECustom")
+        self.aEuLeFocus=False
+        val=str(self.text())
+        if str(val)=="" or val==None :
+            self.valeur=None
+            return
         try :
-           d=self.parentQt.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-           valeur=eval(val,d)
+            valeur=eval(val,{})
         except :
-           valeur=val
-     self.valeur=valeur
-     #print ('self.valeur', self.valeur)
+            try :
+                d=self.parentQt.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                valeur=eval(val,d)
+            except :
+                valeur=val
+        self.valeur=valeur
+        #print ('self.valeur', self.valeur)
 
 
- def clean(self):
-     self.setText("")
   def clean(self):
+        self.setText("")
 
- def getValeur(self):
-     #return self.text()
-     self.litValeur()
-     return self.valeur
   def getValeur(self):
+        #return self.text()
+        self.litValeur()
+        return self.valeur
 
- def setValeur(self,valeur):
-     self.setText(valeur)
   def setValeur(self,valeur):
+        self.setText(valeur)
 
 
 
 # --------------------------- #
 class LECustomTuple(LECustom):
 # --------------------------- #
- def __init__(self,parent):
-     #  index sera mis a jour par TupleCustom
-     parentQt=parent.parent().parent().parent()
-     LECustom. __init__(self,parent,parentQt,0)
-     #print (dir(self))
   def __init__(self,parent):
+        #  index sera mis a jour par TupleCustom
+        parentQt=parent.parent().parent().parent()
+        LECustom. __init__(self,parent,parentQt,0)
+        #print (dir(self))
 
 # ---------------------------- #
 class MonLabelListeClic(QLabel):
 # ---------------------------- #
- def __init__(self,parent):
-     QLabel.__init__(self,parent)
-     self.parent=parent
   def __init__(self,parent):
+        QLabel.__init__(self,parent)
+        self.parent=parent
 
- def event(self,event) :
-     if event.type() == QEvent.MouseButtonRelease:
-        self.texte=self.text()
-        self.parent.traiteClicSurLabelListe(self.texte)
-     return QLabel.event(self,event)
   def event(self,event) :
+        if event.type() == QEvent.MouseButtonRelease:
+            self.texte=self.text()
+            self.parent.traiteClicSurLabelListe(self.texte)
+        return QLabel.event(self,event)
 
 # ------------- #
 class GereListe(object):
 # ------------- #
- def __init__(self):
-    self.connecterSignaux()
-
- def connecterSignaux(self):
-     if hasattr(self,'RBHaut'):
-        self.RBHaut.clicked.connect(self.hautPushed)
-        self.RBBas.clicked.connect(self.basPushed)
-        self.RBMoins.clicked.connect(self.moinsPushed)
-        self.RBPlus.clicked.connect(self.plusPushed)
-        self.RBVoisListe.clicked.connect(self.voisListePushed)
-     if hasattr(self,'PBAlpha'):
-        self.PBCata.clicked.connect(self.cataPushed)
-        self.PBAlpha.clicked.connect(self.alphaPushed)
-        self.PBFind.clicked.connect(self.findPushed)
-        self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed)
-     if hasattr(self, 'PBValideFeuille'):
-        self.PBValideFeuille.clicked.connect(self.changeValeur)
-
- def filtreListe(self):
-     l=[]
-     if self.filtre != "" :
-        for i in self.listeAAfficher :
-            if i.find(self.filtre) == 0 :l.append(i)
-        self.listeAAfficher=l
-     if self.alpha : self.listeAAfficher.sort()
-
- def LEFiltreReturnPressed(self):
-     self.filtre= self.LEFiltre.text()
-     self.prepareListeResultatFiltre()
-
- def findPushed(self):
-     self.filtre= self.LEFiltre.text()
-     self.prepareListeResultatFiltre()
-
- def alphaPushed(self):
-     #print "alphaPushed" ,self.alpha
-     if self.alpha == 1 : return
-     self.alpha=1
-     self.prepareListeResultat()
-
- def cataPushed(self):
-     if self.alpha == 0 : return
-     self.alpha=0
-     self.prepareListeResultat()
-
- def hautPushed(self):
-     #print ('hautPushed')
-     if self.numLineEditEnCours == 0 : return
-     if self.numLineEditEnCours == 1 : return
-     else : numEchange=self.numLineEditEnCours-1
-     self.echange(self.numLineEditEnCours,numEchange)
-     self.lineEditEnCours.setFocus(True)
-     self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
-
-
- def basPushed(self):
-     #print ('hautPushed')
-     if self.numLineEditEnCours == 0 : return
-     if self.numLineEditEnCours == self.indexDernierLabel : return
-     else : numEchange=self.numLineEditEnCours+1
-     self.echange(self.numLineEditEnCours,numEchange)
-     self.lineEditEnCours.setFocus(True)
-     self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
-
- def echange(self,num1,num2):
-     # on donne le focus au a celui ou on a bouge
-     # par convention le 2
-     #print ('echange')
-     nomLineEdit=self.nomLine+str(num1)
-     #print (nomLineEdit)
-     courant=getattr(self,nomLineEdit)
-     valeurAGarder=courant.text()
-     nomLineEdit2=self.nomLine+str(num2)
-     #print (nomLineEdit2)
-     courant2=getattr(self,nomLineEdit2)
-     courant.setText(courant2.text())
-     courant2.setText(valeurAGarder)
-     # pour monWidgetCreeUserAssd
-     self.num1=num1
-     self.num2=num2
-     self.changeValeur(changeDePlace=False)
-     self.numLineEditEnCours=num2
-     self.lineEditEnCours=courant2
-     self.lineEditEnCours.setFocus(True)
-
- def moinsPushed(self):
-     # on supprime le dernier
-     #print ('moinsPushed')
-     if self.numLineEditEnCours == 0 : return
-     if self.indexDernierLabel == 0 : return
-     if self.numLineEditEnCours==self.indexDernierLabel :
-        nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+    def __init__(self):
+        self.connecterSignaux()
+
+    def connecterSignaux(self):
+        if hasattr(self,'RBHaut'):
+            self.RBHaut.clicked.connect(self.hautPushed)
+            self.RBBas.clicked.connect(self.basPushed)
+            self.RBMoins.clicked.connect(self.moinsPushed)
+            self.RBPlus.clicked.connect(self.plusPushed)
+            self.RBVoisListe.clicked.connect(self.voisListePushed)
+        if hasattr(self,'PBAlpha'):
+            self.PBCata.clicked.connect(self.cataPushed)
+            self.PBAlpha.clicked.connect(self.alphaPushed)
+            self.PBFind.clicked.connect(self.findPushed)
+            self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed)
+        if hasattr(self, 'PBValideFeuille'):
+            self.PBValideFeuille.clicked.connect(self.changeValeur)
+
+    def filtreListe(self):
+        l=[]
+        if self.filtre != "" :
+            for i in self.listeAAfficher :
+                if i.find(self.filtre) == 0 :l.append(i)
+            self.listeAAfficher=l
+        if self.alpha : self.listeAAfficher.sort()
+
+    def LEFiltreReturnPressed(self):
+        self.filtre= self.LEFiltre.text()
+        self.prepareListeResultatFiltre()
+
+    def findPushed(self):
+        self.filtre= self.LEFiltre.text()
+        self.prepareListeResultatFiltre()
+
+    def alphaPushed(self):
+        #print "alphaPushed" ,self.alpha
+        if self.alpha == 1 : return
+        self.alpha=1
+        self.prepareListeResultat()
+
+    def cataPushed(self):
+        if self.alpha == 0 : return
+        self.alpha=0
+        self.prepareListeResultat()
+
+    def hautPushed(self):
+        #print ('hautPushed')
+        if self.numLineEditEnCours == 0 : return
+        if self.numLineEditEnCours == 1 : return
+        else : numEchange=self.numLineEditEnCours-1
+        self.echange(self.numLineEditEnCours,numEchange)
+        self.lineEditEnCours.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
+
+
+    def basPushed(self):
+        #print ('hautPushed')
+        if self.numLineEditEnCours == 0 : return
+        if self.numLineEditEnCours == self.indexDernierLabel : return
+        else : numEchange=self.numLineEditEnCours+1
+        self.echange(self.numLineEditEnCours,numEchange)
+        self.lineEditEnCours.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
+
+    def echange(self,num1,num2):
+        # on donne le focus au a celui ou on a bouge
+        # par convention le 2
+        #print ('echange')
+        nomLineEdit=self.nomLine+str(num1)
+        #print (nomLineEdit)
         courant=getattr(self,nomLineEdit)
+        valeurAGarder=courant.text()
+        nomLineEdit2=self.nomLine+str(num2)
+        #print (nomLineEdit2)
+        courant2=getattr(self,nomLineEdit2)
+        courant.setText(courant2.text())
+        courant2.setText(valeurAGarder)
+        # pour monWidgetCreeUserAssd
+        self.num1=num1
+        self.num2=num2
+        self.changeValeur(changeDePlace=False)
+        self.numLineEditEnCours=num2
+        self.lineEditEnCours=courant2
+        self.lineEditEnCours.setFocus(True)
+
+    def moinsPushed(self):
+        # on supprime le dernier
+        #print ('moinsPushed')
+        if self.numLineEditEnCours == 0 : return
+        if self.indexDernierLabel == 0 : return
+        if self.numLineEditEnCours==self.indexDernierLabel :
+            nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+            courant=getattr(self,nomLineEdit)
+            courant.clean()
+        else :
+            for i in range (self.numLineEditEnCours, self.indexDernierLabel):
+                aRemonter=i+1
+                nomLineEdit=self.nomLine+str(aRemonter)
+                courant=getattr(self,nomLineEdit)
+                valeurARemonter=courant.getValeur()
+                nomLineEdit=self.nomLine+str(i)
+                courant=getattr(self,nomLineEdit)
+                if valeurARemonter != None : courant.setValeur(valeurARemonter)
+                else : courant.clean()
+            nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+            courant=getattr(self,nomLineEdit)
+            courant.clean()
+        self.changeValeur(changeDePlace=False,oblige=True)
+        self.setValide()
+
+    def plusPushed(self):
+        #print ('plusPushed gereliste')
+        if self.indexDernierLabel == self.monSimpDef.max:
+            if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide()
+            else : self.editor.afficheInfos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red)
+            return
+        self.ajoutLineEdit()
+        self.descendLesLignes()
+        self.chercheLigneVide()
+        QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def chercheLigneVide(self):
+        #print ('chercheLigneVide')
+        for i in range(self.indexDernierLabel) :
+            nomLineEdit=self.nomLine+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            valeur=courant.getValeur()
+            if valeur=="" or valeur == None :
+                courant.setFocus(True)
+                self.estVisible=courant
+
+    def descendLesLignes(self):
+        #print ('descendLesLignes')
+        if self.numLineEditEnCours==self.indexDernierLabel : return
+        nomLineEdit=self.nomLine+str(self.numLineEditEnCours+1)
+        courant=getattr(self,nomLineEdit)
+        valeurADescendre=courant.getValeur()
         courant.clean()
-     else :
-       for i in range (self.numLineEditEnCours, self.indexDernierLabel):
-          aRemonter=i+1
-          nomLineEdit=self.nomLine+str(aRemonter)
-          courant=getattr(self,nomLineEdit)
-          valeurARemonter=courant.getValeur()
-          nomLineEdit=self.nomLine+str(i)
-          courant=getattr(self,nomLineEdit)
-          if valeurARemonter != None : courant.setValeur(valeurARemonter)
-          else : courant.clean()
-       nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-       courant=getattr(self,nomLineEdit)
-       courant.clean()
-     self.changeValeur(changeDePlace=False,oblige=True)
-     self.setValide()
-
- def plusPushed(self):
-     #print ('plusPushed gereliste')
-     if self.indexDernierLabel == self.monSimpDef.max:
-        if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide()
-        else : self.editor.afficheInfos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red)
-        return
-     self.ajoutLineEdit()
-     self.descendLesLignes()
-     self.chercheLigneVide()
-     QTimer.singleShot(1, self.rendVisibleLigne)
-
- def chercheLigneVide(self):
-     #print ('chercheLigneVide')
-     for i in range(self.indexDernierLabel) :
-         nomLineEdit=self.nomLine+str(i+1)
-         courant=getattr(self,nomLineEdit)
-         valeur=courant.getValeur()
-         if valeur=="" or valeur == None :
-            courant.setFocus(True)
-            self.estVisible=courant
-
- def descendLesLignes(self):
-     #print ('descendLesLignes')
-     if self.numLineEditEnCours==self.indexDernierLabel : return
-     nomLineEdit=self.nomLine+str(self.numLineEditEnCours+1)
-     courant=getattr(self,nomLineEdit)
-     valeurADescendre=courant.getValeur()
-     courant.clean()
-     for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
-         aDescendre=i+1
-         nomLineEdit=self.nomLine+str(aDescendre)
-         courant=getattr(self,nomLineEdit)
-         valeurAGarder=courant.getValeur()
-         courant.setValeur(valeurADescendre)
-         valeurADescendre=valeurAGarder
-     self.changeValeur(changeDePlace=False)
-     if hasattr (self, 'lineEditEnCours') :self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
-
- def voisListePushed(self):
-     texteValeurs=""
-     for v in self.node.item.getListeValeurs():
-         texteValeurs+=str(v)+", "
-     entete="Valeurs pour "+self.nom
-     f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
-     f.show()
-
-
- def selectInFile(self):
-     init=str( self.editor.maConfiguration.savedir)
-     fn = QFileDialog.getOpenFileName(self.node.appliEficas,
-                                       tr("Fichier de donnees"),
-                                       init,
-                                       tr('Tous les  Fichiers (*)',))
-     fn=fn[0]
-     if fn == None : return
-     if fn == "" : return
-     ulfile = os.path.abspath(fn)
-     self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
-
-     from .monSelectVal import MonSelectVal
-     MonSelectVal(file=fn,parent=self).show()
-
- def noircirResultatFiltre(self):
-     filtre=str(self.LEFiltre.text())
-     for cb in self.listeCbRouge:
-        palette = QPalette(Qt.red)
-        palette.setColor(QPalette.WindowText,Qt.black)
-        cb.setPalette(palette)
-        t=cb.text()
-        cb.setText(t)
-     self.LEFiltre.setText("")
-     self.listeCbRouge = []
+        for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
+            aDescendre=i+1
+            nomLineEdit=self.nomLine+str(aDescendre)
+            courant=getattr(self,nomLineEdit)
+            valeurAGarder=courant.getValeur()
+            courant.setValeur(valeurADescendre)
+            valeurADescendre=valeurAGarder
+        self.changeValeur(changeDePlace=False)
+        if hasattr (self, 'lineEditEnCours') :self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
+
+    def voisListePushed(self):
+        texteValeurs=""
+        for v in self.node.item.getListeValeurs():
+            texteValeurs+=str(v)+", "
+        entete="Valeurs pour "+self.nom
+        f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
+        f.show()
+
+
+    def selectInFile(self):
+        init=str( self.editor.maConfiguration.savedir)
+        fn = QFileDialog.getOpenFileName(self.node.appliEficas,
+                                          tr("Fichier de donnees"),
+                                          init,
+                                          tr('Tous les  Fichiers (*)',))
+        fn=fn[0]
+        if fn == None : return
+        if fn == "" : return
+        ulfile = os.path.abspath(fn)
+        self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
+
+        from .monSelectVal import MonSelectVal
+        MonSelectVal(file=fn,parent=self).show()
+
+    def noircirResultatFiltre(self):
+        filtre=str(self.LEFiltre.text())
+        for cb in self.listeCbRouge:
+            palette = QPalette(Qt.red)
+            palette.setColor(QPalette.WindowText,Qt.black)
+            cb.setPalette(palette)
+            t=cb.text()
+            cb.setText(t)
+        self.LEFiltre.setText("")
+        self.listeCbRouge = []
 
 
 # ----------- #
 class GerePlie(object):
 # ----------- #
 
- def gereIconePlier(self):
-     if not(hasattr(self,'BFermeListe')) : return
-     self.editor.listeDesListesOuvertes.add(self.node.item)
-     repIcon=self.node.editor.appliEficas.repIcon
-     if not (self.editor.afficheListesPliees):
-        fichier=os.path.join(repIcon, 'empty.png')
+    def gereIconePlier(self):
+        if not(hasattr(self,'BFermeListe')) : return
+        self.editor.listeDesListesOuvertes.add(self.node.item)
+        repIcon=self.node.editor.appliEficas.repIcon
+        if not (self.editor.afficheListesPliees):
+            fichier=os.path.join(repIcon, 'empty.png')
+            icon = QIcon(fichier)
+            self.BFermeListe.setIcon(icon)
+            return
+        fichier=os.path.join(repIcon, 'minusnode.png')
         icon = QIcon(fichier)
         self.BFermeListe.setIcon(icon)
-        return
-     fichier=os.path.join(repIcon, 'minusnode.png')
-     icon = QIcon(fichier)
-     self.BFermeListe.setIcon(icon)
-     self.BFermeListe.clicked.connect( self.selectWidgetPlie)
-
- def selectWidgetPlie(self):
-     self.editor.listeDesListesOuvertes.remove(self.node.item)
-     self.reaffichePourDeplier()
+        self.BFermeListe.clicked.connect( self.selectWidgetPlie)
+
+    def selectWidgetPlie(self):
+        self.editor.listeDesListesOuvertes.remove(self.node.item)
+        self.reaffichePourDeplier()
index e84486b95b99ed36ff0f610afac65751338289ad..8579a57873ed2e19788e101333e178322de18192 100644 (file)
@@ -20,7 +20,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 from PyQt5.QtCore import Qt
@@ -29,45 +29,42 @@ from Extensions.i18n import tr
 
 class GereRegles(object) :
 
-   def appellebuildLBRegles(self):
-       from .browser import JDCTree
-       if isinstance(self,JDCTree):
-          self.appellebuildLBReglesForJdC()
-       else :
-          self.appellebuildLBReglesForCommand()
-       self.buildLBRegles(self.listeRegles,self.listeNomsEtapes)
-       self.afficheRegles()
-       
-   def appellebuildLBReglesForCommand(self):
-       self.listeRegles     = self.item.getRegles()
-       self.listeNomsEtapes = self.item.getMcPresents()
+    def appellebuildLBRegles(self):
+        from .browser import JDCTree
+        if isinstance(self,JDCTree):
+            self.appellebuildLBReglesForJdC()
+        else :
+            self.appellebuildLBReglesForCommand()
+        self.buildLBRegles(self.listeRegles,self.listeNomsEtapes)
+        self.afficheRegles()
 
-   def appellebuildLBReglesForJdC(self):
-       self.listeRegles=self.item.getRegles()
-       self.listeNomsEtapes = self.item.getLNomsEtapes()
+    def appellebuildLBReglesForCommand(self):
+        self.listeRegles     = self.item.getRegles()
+        self.listeNomsEtapes = self.item.getMcPresents()
 
+    def appellebuildLBReglesForJdC(self):
+        self.listeRegles=self.item.getRegles()
+        self.listeNomsEtapes = self.item.getLNomsEtapes()
 
-   def buildLBRegles(self,listeRegles,listeNomsEtapes):
-       self.liste=[]
-       if len(listeRegles) > 0:
-          for regle in listeRegles :
-             texteRegle=regle.getText()
-             texteMauvais,test = regle.verif(listeNomsEtapes)
-             for ligne in texteRegle.split("\n") :
-                if ligne == "" : continue
-                if ligne[0]=="\t" :  ligne="     "+ligne[1:]
-                if test :
-                   self.liste.append((ligne,Qt.black))
-                else :
-                   self.liste.append((ligne,Qt.red))
-             self.liste.append(("",Qt.red))
-       if self.liste==[] : self.liste.append(("pas de regle de construction pour ce jeu de commandes",Qt.black))
-               
 
-   def afficheRegles(self):
-      titre="Regles pour "+self.item.nom
-      w = ViewRegles( self.editor,self.liste,titre  )
-      w.exec_()
-       
+    def buildLBRegles(self,listeRegles,listeNomsEtapes):
+        self.liste=[]
+        if len(listeRegles) > 0:
+            for regle in listeRegles :
+                texteRegle=regle.getText()
+                texteMauvais,test = regle.verif(listeNomsEtapes)
+                for ligne in texteRegle.split("\n") :
+                    if ligne == "" : continue
+                    if ligne[0]=="\t" :  ligne="     "+ligne[1:]
+                    if test :
+                        self.liste.append((ligne,Qt.black))
+                    else :
+                        self.liste.append((ligne,Qt.red))
+                self.liste.append(("",Qt.red))
+        if self.liste==[] : self.liste.append(("pas de regle de construction pour ce jeu de commandes",Qt.black))
 
 
+    def afficheRegles(self):
+        titre="Regles pour "+self.item.nom
+        w = ViewRegles( self.editor,self.liste,titre  )
+        w.exec_()
index 9bca1b3779e48e0ee8647bdca69fc449771044c3..146a19ee9c7f3454dc0ca44f68670ffe2d603206 100644 (file)
@@ -18,7 +18,7 @@
 #
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from PyQt5.QtWidgets import  QFileDialog, QApplication
@@ -28,20 +28,20 @@ from Extensions.i18n import tr
 
 
 def traduction(directPath,editor,version):
-    if version == "V9V10" : 
-       from Traducteur import traduitV9V10 
-       suffixe="v10.comm"
+    if version == "V9V10" :
+        from Traducteur import traduitV9V10
+        suffixe="v10.comm"
     if version == "V10V11" :
-       from Traducteur import traduitV10V11
-       suffixe="v11.comm"
+        from Traducteur import traduitV10V11
+        suffixe="v11.comm"
     if version == "V11V12" :
-       from Traducteur import traduitV11V12
-       suffixe="v12.comm"
+        from Traducteur import traduitV11V12
+        suffixe="v12.comm"
 
-    fn = QFileDialog.getOpenFileName( 
-                       editor.appliEficas,
+    fn = QFileDialog.getOpenFileName(
+                        editor.appliEficas,
                         tr('Traduire Fichier'),
-                       directPath ,
+                        directPath ,
                         tr('Fichiers JDC  (*.comm);;''Tous les Fichiers (*)'))
 
 
@@ -70,13 +70,13 @@ def traduction(directPath,editor,version):
         texte= f.read()
         f.close()
     else :
-       texte = Entete  
-       commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null"
-       try :
-         if os.system(commande) == 0 :
-            texte = texte + tr("Pas de difference entre le fichier origine et le fichier traduit")
-       except :
-         pass
+        texte = Entete
+        commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null"
+        try :
+            if os.system(commande) == 0 :
+                texte = texte + tr("Pas de difference entre le fichier origine et le fichier traduit")
+        except :
+            pass
 
     from .monVisu import DVisu
     titre = "conversion de "+ FichieraTraduire
@@ -84,4 +84,3 @@ def traduction(directPath,editor,version):
     monVisuDialg.setWindowTitle(titre)
     monVisuDialg.TB.setText(texte)
     monVisuDialg.show()
-
index 5a541edb40904c26985f019083f5df658bb94d56..73c31ac23f739d0f4af9eaa5e3c7073ed6715da7 100644 (file)
@@ -27,69 +27,69 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .gereIcones import FacultatifOuOptionnel
-import Accas 
+import Accas
 import traceback
 
-    
+
 # Import des panels
 
 class Groupe(QWidget,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition,obj,niveau,commande=None):
-      #print ("groupe : ",self.node.item.nom," ",self.node.fenetre)
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.setupUi(self)
-      self.editor=editor
-      self.obj=obj
-      self.niveau=niveau
-      self.definition=definition
-      self.parentQt=parentQt
-      self.maCommande=commande
-      self.listeFocus=[]
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-      self.jdc=self.node.item.getJdc()
-      self.setIconePoubelle()
-      self.setIconesGenerales()
-      self.setRun()
-      self.setValide()
-      self.setReglesEtAide()
-      self.afficheMots()
-      self.listeMCAAjouter=[]
-      self.dictMCVenantDesBlocs={}
-      if hasattr(self,'RBDeplie')  : self.RBDeplie.clicked.connect(self.setDeplie)
-      if hasattr(self,'RBPlie')    : self.RBPlie.clicked.connect( self.setPlie)
-
-      self.setAcceptDrops(True)
-      #if hasattr (self, 'commandesLayout'): 
-      #   print (' j ajoute un spacer dans ', self.node.item.nom)
-      #   spacerItem = QSpacerItem(20, 5, QSizePolicy.Minimum, QSizePolicy.Expanding)
-      #   self.commandesLayout.addItem(spacerItem)
-     
-  def donneFocus(self):
-      for fenetre in self.listeFocus:
-          if fenetre==None : return
-          if fenetre.node.item.isValid() == 0 :
-             fenetre.prendLeFocus=1
-             fenetre.hide()
-             fenetre.show()
-      
-
-  def afficheMots(self):
-      #print ("ds afficheMots ",self.node.item.nom,self.node.plie)
-      for node in self.node.children:
-           # non return mais  continue car il faut tenir compte des blocs
-           if node.appartientAUnNoeudPlie==True : continue
-           widget=node.getPanelGroupe(self,self.maCommande)
-           #print ("widget pour ", node.item.nom, widget)
-           self.listeFocus.append(node.fenetre)
-      #print "fin pour " , self.node.item.nom
-
-       
-  def calculOptionnel(self):
+    """
+    """
+    def __init__(self,node,editor,parentQt,definition,obj,niveau,commande=None):
+        #print ("groupe : ",self.node.item.nom," ",self.node.fenetre)
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.setupUi(self)
+        self.editor=editor
+        self.obj=obj
+        self.niveau=niveau
+        self.definition=definition
+        self.parentQt=parentQt
+        self.maCommande=commande
+        self.listeFocus=[]
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.jdc=self.node.item.getJdc()
+        self.setIconePoubelle()
+        self.setIconesGenerales()
+        self.setRun()
+        self.setValide()
+        self.setReglesEtAide()
+        self.afficheMots()
+        self.listeMCAAjouter=[]
+        self.dictMCVenantDesBlocs={}
+        if hasattr(self,'RBDeplie')  : self.RBDeplie.clicked.connect(self.setDeplie)
+        if hasattr(self,'RBPlie')    : self.RBPlie.clicked.connect( self.setPlie)
+
+        self.setAcceptDrops(True)
+        #if hasattr (self, 'commandesLayout'):
+        #   print (' j ajoute un spacer dans ', self.node.item.nom)
+        #   spacerItem = QSpacerItem(20, 5, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        #   self.commandesLayout.addItem(spacerItem)
+
+    def donneFocus(self):
+        for fenetre in self.listeFocus:
+            if fenetre==None : return
+            if fenetre.node.item.isValid() == 0 :
+                fenetre.prendLeFocus=1
+                fenetre.hide()
+                fenetre.show()
+
+
+    def afficheMots(self):
+        #print ("ds afficheMots ",self.node.item.nom,self.node.plie)
+        for node in self.node.children:
+            # non return mais  continue car il faut tenir compte des blocs
+            if node.appartientAUnNoeudPlie==True : continue
+            widget=node.getPanelGroupe(self,self.maCommande)
+            #print ("widget pour ", node.item.nom, widget)
+            self.listeFocus.append(node.fenetre)
+        #print "fin pour " , self.node.item.nom
+
+
+    def calculOptionnel(self):
         self.listeMc=[]
         self.listeMcRegle=[]
         self.dictToolTipMc={}
@@ -98,114 +98,113 @@ class Groupe(QWidget,FacultatifOuOptionnel):
         # n ont pas toutes ces methodes
         try :
         #if 1 :
-           self.listeMc     = self.obj.getListeMcOrdonnee(genea,self.jdc.cata_ordonne_dico)
-           listeNomsPresents=self.obj.dictMcPresents()
-           for regle in self.obj.getRegles():
-               (monToolTip,regleOk)=regle.verif(listeNomsPresents)
-               if regleOk : continue
-               for mc in regle.mcs :
-                   self.listeMcRegle.append(mc)
-                   self.dictToolTipMc[mc]=monToolTip
+            self.listeMc     = self.obj.getListeMcOrdonnee(genea,self.jdc.cata_ordonne_dico)
+            listeNomsPresents=self.obj.dictMcPresents()
+            for regle in self.obj.getRegles():
+                (monToolTip,regleOk)=regle.verif(listeNomsPresents)
+                if regleOk : continue
+                for mc in regle.mcs :
+                    self.listeMcRegle.append(mc)
+                    self.dictToolTipMc[mc]=monToolTip
         except :
-           #print ('in except')
-           #print (self)
-           return
-        
-  def afficheOptionnel(self):
+            #print ('in except')
+            #print (self)
+            return
+
+    def afficheOptionnel(self):
         if self.editor.maConfiguration.closeOptionnel : return
         liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
         self.monOptionnel=self.editor.widgetOptionnel
         self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
-           
-
-  def ajouteMCOptionnelDesBlocs(self):
-      self.dictMCVenantDesBlocs={}
-      i=0
-      self.calculOptionnel()
-      liste=self.listeMc
-      liste_rouge=self.listeMcRegle
-      for MC in self.listeMc : self.dictMCVenantDesBlocs[MC]=self
-      # ce cas est le cas machine tournant sr le plie
-      try :
-        while i < self.commandesLayout.count():
-          from .monWidgetBloc import MonWidgetBloc
-          widget=self.commandesLayout.itemAt(i).widget()
-          i=i+1
-          if not(isinstance(widget,MonWidgetBloc)) : continue
-          widget.calculOptionnel()
-          listeW,listeW_rouge=widget.ajouteMCOptionnelDesBlocs() 
-          for MC in widget.dictMCVenantDesBlocs:
-              if MC in self.dictMCVenantDesBlocs: print ("Pb Sur les MC" )
-              else : self.dictMCVenantDesBlocs[MC]=widget.dictMCVenantDesBlocs[MC]
-          liste=liste+listeW
-          liste_rouge=liste_rouge+listeW_rouge
-      except : 
-        pass
-      return (liste,liste_rouge)
-
-
-  def reaffiche(self,nodeAVoir=None):
-      #print "dans reaffiche de groupe.py", nodeAVoir
-      self.parentQt.reaffiche(nodeAVoir)
-
-  def recalculeListeMC(self,listeMC):
-      #print "pas si peu utile"
-      #on ajoute et on enleve
-      listeNode=[]
-      for name in listeMC :
-          nodeAEnlever=self.node.appendChild(name)
-          if nodeAEnlever.item.isMCList(): 
-             nodeAEnlever=nodeAEnlever.children[-1]
-          listeNode.append(nodeAEnlever)
-      self.afficheOptionnel()
-      self.monOptionnel.affiche(self.listeMc)
-      if len(listeNode) == 0 : return
-      if len(listeNode) == 1 : 
-         listeNode[0].delete()
-         self.editor.afficheInfos("")
-         return
-      for noeud in listeNode:
-          noeud.treeParent.item.suppItem(noeud.item)
-      noeud.treeParent.buildChildren()
-      self.editor.afficheInfos("")
-
-  def ajoutMC(self,texteListeNom):
-      listeNom=texteListeNom.split("+")[1:]
-      firstNode=None
-      for nom in listeNom:
-        if nom not in self.dictMCVenantDesBlocs:
-           #print "bizarre, bizarre"
-           self.editor.initModif()
-           nouveau=self.node.appendChild(nom)
-        else :
-           self.editor.initModif()
-           widget=self.dictMCVenantDesBlocs[nom]
-           nouveau=widget.node.appendChild(nom)
-        if firstNode==None : firstNode=nouveau 
-        if nouveau == None or nouveau == 0  : 
-           self.editor.afficheInfos(tr('insertion impossible a cet endroit pour '+nom),Qt.red)
-      try :
-       self.reaffiche(firstNode)
-       if firstNode!=None and firstNode !=0 and firstNode.item!=None : firstNode.select()
-      except :
-       pass
-
-
-  def setPlie(self):
-      self.node.setPlie()
-      self.reaffiche(self.node) 
-
-  def setDeplie(self):
-      #print ('je passe ds setDeplie de groupe', self.obj.nom)
-      self.node.firstDeplie = False
-      self.node.setDeplie()
-      self.reaffiche(self.node) 
-    
-
-  def traiteClicSurLabel(self,texte):
-      if self.editor.code != "CARMELCND" : self.afficheOptionnel()
-
-
-  def propageChange(self,leType,donneLefocus):
-      self.parentQt.propageChange(leType,donneLefocus)
 
+
+    def ajouteMCOptionnelDesBlocs(self):
+        self.dictMCVenantDesBlocs={}
+        i=0
+        self.calculOptionnel()
+        liste=self.listeMc
+        liste_rouge=self.listeMcRegle
+        for MC in self.listeMc : self.dictMCVenantDesBlocs[MC]=self
+        # ce cas est le cas machine tournant sr le plie
+        try :
+            while i < self.commandesLayout.count():
+                from .monWidgetBloc import MonWidgetBloc
+                widget=self.commandesLayout.itemAt(i).widget()
+                i=i+1
+                if not(isinstance(widget,MonWidgetBloc)) : continue
+                widget.calculOptionnel()
+                listeW,listeW_rouge=widget.ajouteMCOptionnelDesBlocs()
+                for MC in widget.dictMCVenantDesBlocs:
+                    if MC in self.dictMCVenantDesBlocs: print ("Pb Sur les MC" )
+                    else : self.dictMCVenantDesBlocs[MC]=widget.dictMCVenantDesBlocs[MC]
+                liste=liste+listeW
+                liste_rouge=liste_rouge+listeW_rouge
+        except :
+            pass
+        return (liste,liste_rouge)
+
+
+    def reaffiche(self,nodeAVoir=None):
+        #print "dans reaffiche de groupe.py", nodeAVoir
+        self.parentQt.reaffiche(nodeAVoir)
+
+    def recalculeListeMC(self,listeMC):
+        #print "pas si peu utile"
+        #on ajoute et on enleve
+        listeNode=[]
+        for name in listeMC :
+            nodeAEnlever=self.node.appendChild(name)
+            if nodeAEnlever.item.isMCList():
+                nodeAEnlever=nodeAEnlever.children[-1]
+            listeNode.append(nodeAEnlever)
+        self.afficheOptionnel()
+        self.monOptionnel.affiche(self.listeMc)
+        if len(listeNode) == 0 : return
+        if len(listeNode) == 1 :
+            listeNode[0].delete()
+            self.editor.afficheInfos("")
+            return
+        for noeud in listeNode:
+            noeud.treeParent.item.suppItem(noeud.item)
+        noeud.treeParent.buildChildren()
+        self.editor.afficheInfos("")
+
+    def ajoutMC(self,texteListeNom):
+        listeNom=texteListeNom.split("+")[1:]
+        firstNode=None
+        for nom in listeNom:
+            if nom not in self.dictMCVenantDesBlocs:
+            #print "bizarre, bizarre"
+                self.editor.initModif()
+                nouveau=self.node.appendChild(nom)
+            else :
+                self.editor.initModif()
+                widget=self.dictMCVenantDesBlocs[nom]
+                nouveau=widget.node.appendChild(nom)
+            if firstNode==None : firstNode=nouveau
+            if nouveau == None or nouveau == 0  :
+                self.editor.afficheInfos(tr('insertion impossible a cet endroit pour '+nom),Qt.red)
+        try :
+            self.reaffiche(firstNode)
+            if firstNode!=None and firstNode !=0 and firstNode.item!=None : firstNode.select()
+        except :
+            pass
+
+
+    def setPlie(self):
+        self.node.setPlie()
+        self.reaffiche(self.node)
+
+    def setDeplie(self):
+        #print ('je passe ds setDeplie de groupe', self.obj.nom)
+        self.node.firstDeplie = False
+        self.node.setDeplie()
+        self.reaffiche(self.node)
+
+
+    def traiteClicSurLabel(self,texte):
+        if self.editor.code != "CARMELCND" : self.afficheOptionnel()
+
+
+    def propageChange(self,leType,donneLefocus):
+        self.parentQt.propageChange(leType,donneLefocus)
index 788647072e6e09b2284e10b4b6bc5570287b93ac..2add2cb3810baf0b01a5e5a5d8117990737e01f5 100644 (file)
@@ -29,46 +29,44 @@ from Extensions.i18n import tr
 
 class MonBoutonValide(QToolButton) :
 
-     def __init__(self,parent):
+    def __init__(self,parent):
         QToolButton.__init__(self,parent)
-        while( not(hasattr(parent,'node'))): 
-          parent= parent.parent()
+        while( not(hasattr(parent,'node'))):
+            parent= parent.parent()
         self.parent=parent
 
-     def mouseDoubleClickEvent(self, event):
+    def mouseDoubleClickEvent(self, event):
         #print "dans mouseDoubleClickEvent"
         strAide=self.parent.node.item.object.getFr()
         if hasattr(self.parent.node.item.object.definition, 'defaut') :
-                strAide+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
+            strAide+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
         strRapport=str(self.parent.node.item.object.report())
         self.parent.editor._viewText(strAide+"\n"+strRapport, "JDC_RAPPORT")
 
-     def mousePressEvent(self, event):
-       #print "dans mousePressEvent"
-       if self.parent.node.item.object.isValid() :
-          myToolTip=tr("objet valide")
-          if self.parent.editor.maConfiguration.differencieSiDefaut :
-            if hasattr(self.parent.node.item.object.definition, 'defaut') :
-              if self.parent.node.item.object.valeur != self.parent.node.item.object.definition.defaut :
-                myToolTip+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
-
-          QToolTip.showText(event.globalPos(),myToolTip )
-       else :
-          t=""
-          texte=self.parent.node.item.object.report().report()
-          deb=1
-          for l in texte.split('\n')[2:-2]:
-              if re.match('^[\t !]*$',l) : continue
-              if re.match('^ *Fin Mot-cl',l) : continue
-              if re.match('^ *D?but Mot-cl',l) : continue
-              if re.match('^ *Mot-cl',l) : continue
-              l=l.replace('!','')
-              if deb :
-                 deb=0
-                 t=l
-              else :
-                 t=t+'\n'+l
-          myToolTip=tr(t)
-       QToolTip.showText(event.globalPos(),myToolTip )
-
+    def mousePressEvent(self, event):
+        #print "dans mousePressEvent"
+        if self.parent.node.item.object.isValid() :
+            myToolTip=tr("objet valide")
+            if self.parent.editor.maConfiguration.differencieSiDefaut :
+                if hasattr(self.parent.node.item.object.definition, 'defaut') :
+                    if self.parent.node.item.object.valeur != self.parent.node.item.object.definition.defaut :
+                        myToolTip+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
 
+            QToolTip.showText(event.globalPos(),myToolTip )
+        else :
+            t=""
+            texte=self.parent.node.item.object.report().report()
+            deb=1
+            for l in texte.split('\n')[2:-2]:
+                if re.match('^[\t !]*$',l) : continue
+                if re.match('^ *Fin Mot-cl',l) : continue
+                if re.match('^ *D?but Mot-cl',l) : continue
+                if re.match('^ *Mot-cl',l) : continue
+                l=l.replace('!','')
+                if deb :
+                    deb=0
+                    t=l
+                else :
+                    t=t+'\n'+l
+            myToolTip=tr(t)
+        QToolTip.showText(event.globalPos(),myToolTip )
index 8ecd647d4daf04e2e63bf6945d8cb383c4e829c8..b63b088d49647692124b06b2521112d06078dd9d 100644 (file)
@@ -28,23 +28,22 @@ from Extensions.i18n import tr
 # Import des panels
 
 class MonChoixCata(Ui_DChoixCata,QDialog):
-  """
-  """
-  def __init__(self, QWparent, listeCata, title = None):
-      QDialog.__init__(self, QWparent)
-      self.setModal(True)
-      self.setupUi(self)
-      self.CBChoixCata.addItems(listeCata)
-      self.TLNb.setText(tr("%d versions du catalogue sont disponibles", len(listeCata)))
-      if title is not None:
-          self.setWindowTitle(tr(title))
-      self.buttonOk.clicked.connect(self.cataChoisi)
-      self.buttonCancel.clicked.connect(self.sortSansChoix)
+    """
+    """
+    def __init__(self, QWparent, listeCata, title = None):
+        QDialog.__init__(self, QWparent)
+        self.setModal(True)
+        self.setupUi(self)
+        self.CBChoixCata.addItems(listeCata)
+        self.TLNb.setText(tr("%d versions du catalogue sont disponibles", len(listeCata)))
+        if title is not None:
+            self.setWindowTitle(tr(title))
+        self.buttonOk.clicked.connect(self.cataChoisi)
+        self.buttonCancel.clicked.connect(self.sortSansChoix)
 
 
-  def sortSansChoix(self):
-      QDialog.reject(self)
-
-  def cataChoisi(self):
-      QDialog.accept(self)
+    def sortSansChoix(self):
+        QDialog.reject(self)
 
+    def cataChoisi(self):
+        QDialog.accept(self)
index a5a2ddcca28d8379b8407b06205b245d9adfb4b7..113180b335d247921802502424b8f01e4c0d34cb 100644 (file)
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os,sys,re
@@ -31,83 +31,83 @@ from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup
 from PyQt5.QtGui import QPalette
 from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize
 
-    
+
 # Import des panels
 
 class MonChoixCode(Ui_ChoixCode,QDialog):
-  """
-  Classe definissant le panel associe aux mots-cles qui demandent
-  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discretes
-  """
-  def __init__(self,  appliEficas=None):
-      QDialog.__init__(self,parent=appliEficas,flags=Qt.Window)
-      self.setModal(True)
-      self.setupUi(self)
-      self.appliEficas=appliEficas
-      self.verifieInstall()
-      self.code=None
-      self.buttonBox.accepted.disconnect(self.accept)
-      self.buttonBox.accepted.connect(self.choisitCode)
-     # self.pB_OK.clicked.connect(self.choisitCode)
-      #self.pB_cancel.clicked.connect(self.sortie)
+    """
+    Classe definissant le panel associe aux mots-cles qui demandent
+    a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+    discretes
+    """
+    def __init__(self,  appliEficas=None):
+        QDialog.__init__(self,parent=appliEficas,flags=Qt.Window)
+        self.setModal(True)
+        self.setupUi(self)
+        self.appliEficas=appliEficas
+        self.verifieInstall()
+        self.code=None
+        self.buttonBox.accepted.disconnect(self.accept)
+        self.buttonBox.accepted.connect(self.choisitCode)
+       # self.pB_OK.clicked.connect(self.choisitCode)
+        #self.pB_cancel.clicked.connect(self.sortie)
 
-  def sortie(self):
-      QDialog.reject(self)
+    def sortie(self):
+        QDialog.reject(self)
 
-  def verifieInstall(self):
-      self.groupCodes=QButtonGroup(self.groupBox)
-      vars=list(os.environ.items())
-      listeCode=('Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','PSEN_N1','Telemac','ZCracks',)
-      for code in listeCode:
-          dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
-          try :
-             l=os.listdir(dirCode)
-             bouton=QRadioButton(self.groupBox)
-             bouton.setText(code)
-             self.groupCodes.addButton(bouton)
-             self.vlBouton.addWidget(bouton)
-          except :
-             clef="PREFS_CATA_"+code
-             try :
+    def verifieInstall(self):
+        self.groupCodes=QButtonGroup(self.groupBox)
+        vars=list(os.environ.items())
+        listeCode=('Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','PSEN_N1','Telemac','ZCracks',)
+        for code in listeCode:
+            dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
+            try :
+                l=os.listdir(dirCode)
+                bouton=QRadioButton(self.groupBox)
+                bouton.setText(code)
+                self.groupCodes.addButton(bouton)
+                self.vlBouton.addWidget(bouton)
+            except :
+                clef="PREFS_CATA_"+code
+                try :
+                    repIntegrateur=os.path.abspath(os.environ[clef])
+                    l=os.listdir(repIntegrateur)
+                    bouton=QRadioButton(self.groupBox)
+                    bouton.setText(code)
+                    bouton.show()
+                    self.groupCodes.addButton(bouton)
+                except :
+                    pass
+        listeCodesIntegrateur=[]
+        for k,v in vars:
+            if re.search('^PREFS_CATA_',k) != None and k[11:] not in listeCode:
+                listeCodesIntegrateur.append(k[11:])
+        for code in listeCodesIntegrateur:
+            try :
+                clef="PREFS_CATA_"+code
                 repIntegrateur=os.path.abspath(os.environ[clef])
                 l=os.listdir(repIntegrateur)
-                bouton=QRadioButton(self.groupBox)
+                bouton=QRadioButton(self)
                 bouton.setText(code)
                 bouton.show()
                 self.groupCodes.addButton(bouton)
-             except :
+            except :
                 pass
-      listeCodesIntegrateur=[]
-      for k,v in vars:
-          if re.search('^PREFS_CATA_',k) != None and k[11:] not in listeCode:
-             listeCodesIntegrateur.append(k[11:])
-      for code in listeCodesIntegrateur:
-          try :
-              clef="PREFS_CATA_"+code
-              repIntegrateur=os.path.abspath(os.environ[clef])
-              l=os.listdir(repIntegrateur)
-              bouton=QRadioButton(self)
-              bouton.setText(code)
-              bouton.show()
-              self.groupCodes.addButton(bouton)
-          except :
-              pass
-      self.appliEficas.listeCode=self.appliEficas.listeCode+listeCodesIntegrateur
+        self.appliEficas.listeCode=self.appliEficas.listeCode+listeCodesIntegrateur
 
-  def choisitCode(self):
-      bouton=self.groupCodes.checkedButton()
-      if bouton==None : return
-      code=str(bouton.text())
-      codeUpper=code.upper()
-      self.appliEficas.code=codeUpper
-      try :
-          dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
-          l=os.listdir(dirCode)
-          sys.path.insert(0,dirCode)
-      except :
-          clef="PREFS_CATA_"+code
-          repIntegrateur=os.path.abspath(os.environ[clef])
-          l=os.listdir(repIntegrateur)
-          sys.path.insert(0,repIntegrateur)
-      self.close()
+    def choisitCode(self):
+        bouton=self.groupCodes.checkedButton()
+        if bouton==None : return
+        code=str(bouton.text())
+        codeUpper=code.upper()
+        self.appliEficas.code=codeUpper
+        try :
+            dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
+            l=os.listdir(dirCode)
+            sys.path.insert(0,dirCode)
+        except :
+            clef="PREFS_CATA_"+code
+            repIntegrateur=os.path.abspath(os.environ[clef])
+            l=os.listdir(repIntegrateur)
+            sys.path.insert(0,repIntegrateur)
+        self.close()
index d7d2d896bbf1ffc8bab31d2aeeba7aecad489721..367b352329e37f70ce2f425c7a8bc47c436a17a1 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desChoixCommandes import Ui_ChoixCommandes
@@ -32,327 +32,327 @@ from PyQt5.QtCore import QSize, QRect
 from Extensions.i18n import tr
 import os
 
-    
+
 # Import des panels
 
 class MonChoixCommande(Ui_ChoixCommandes,QWidget):
-  """
-  """
-  def __init__(self,node, jdc_item, editor):
-      QWidget.__init__(self,parent=None)
-      self.setupUi(self)
-
-      self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
-      iconeFile=os.path.join(self.repIcon,'lettreRblanc30.png')
-      icon = QIcon(iconeFile)
-      self.RBRegle.setIcon(icon)
-      self.RBRegle.setIconSize(QSize(21, 31))
-
-      self.item = jdc_item
-      self.node = node
-      self.editor = editor
-      self.simpleClic=self.editor.maConfiguration.simpleClic
-      self.jdc  = self.item.object.getJdcRoot()
-      debutTitre=self.editor.titre
-      self.listeWidget=[]
-      self.dicoCmd={}
-      if self.editor.fichier != None : 
-          nouveauTitre=debutTitre+" "+os.path.basename(self.editor.fichier)
-      else :
-          nouveauTitre=debutTitre
-      self.editor.appliEficas.setWindowTitle(nouveauTitre)
-
-
-      self.RBalpha.clicked.connect(self.afficheAlpha)
-      self.RBGroupe.clicked.connect(self.afficheGroupe)
-      self.RBOrdre.clicked.connect(self.afficheOrdre)
-      self.RBClear.clicked.connect(self.clearFiltre)
-      self.RBCasse.toggled.connect(self.ajouteRadioButtons)
-      self.LEFiltre.returnPressed.connect(self.ajouteRadioButtons)
-      self.LEFiltre.textChanged.connect(self.ajouteRadioButtons)
-
-      if self.node.tree.item.getRegles() == () :
-         self.RBRegle.close()
-         self.labelRegle.close()
-      else : 
-        self.RBRegle.clicked.connect(self.afficheRegle)
-
-      if self.editor.readercata.Ordre_Des_Commandes == None : self.RBOrdre.close()
-
-       
-      #self.editor.labelCommentaire.setText("")
-      if self.editor.widgetOptionnel!= None : 
-         self.editor.fermeOptionnel()
-         self.editor.widgetOptionnel=None
-      self.name=None
-
-      self.boolAlpha=0
-      self.boolGroupe=0
-      self.boolOrdre=0
-      if self.editor.maConfiguration.affiche=="alpha"  : 
-         self.boolAlpha==1;  
-         self.RBalpha.setChecked(True);
-         self.afficheAlpha()
-      elif self.editor.maConfiguration.affiche=="groupe" : 
-         self.boolGroupe==1; 
-         self.RBGroupe.setChecked(True); 
-         self.afficheGroupe()
-      elif self.editor.maConfiguration.affiche=="ordre"  : 
-         self.boolOrdre==1;  
-         self.RBOrdre.setChecked(True);  
-         self.afficheOrdre()
-      if self.editor.maConfiguration.closeFrameRechercheCommandeSurPageDesCommandes == True : self.frameAffichage.close()
-
-      if self.editor.widgetTree != None : self.editor.restoreSplitterSizes(2) 
-      else: self.editor.restoreSplitterSizes(3)
-
-  def afficheRegle(self):
-      self.node.tree.appellebuildLBRegles()
-
-  def afficheAlpha(self):
-      self.boolAlpha=1
-      self.boolGroupe=0
-      self.boolOrdre=0
-      self.ajouteRadioButtons()
-
-  def afficheGroupe(self):
-      self.boolAlpha=0
-      self.boolGroupe=1
-      self.boolOrdre=0
-      self.ajouteRadioButtons()
-
-  def afficheOrdre(self):
-      self.boolAlpha=0
-      self.boolGroupe=0
-      self.boolOrdre=1
-      self.ajouteRadioButtons()
-
-  def insereNoeudApresClick(self,event):
-      #print self.editor.Classement_Commandes_Ds_Arbre
-      #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu()
-      #print ('dans insereNoeudApresClick')
-      nodeCourrant=self.node.tree.currentItem()
-      if nodeCourrant==None: nodeCourrant=self.node.tree.racine
-      if self.name != None :
-         plier=self.editor.maConfiguration.afficheCommandesPliees
-         if nodeCourrant==self.node : nouveau=self.node.appendChild(self.name,'first',plier)
-         else : nouveau=nodeCourrant.appendBrother(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()
-      if self.editor.afficheApresInsert == True :
-           #if self.editor.affichePlie==True:  nouveau.plieToutEtReaffiche()
-           if self.editor.maConfiguration.afficheCommandesPliees ==True:  nouveau.plieToutEtReaffiche()
-           else : nouveau.deplieToutEtReaffiche()
-           nouveau.fenetre.donnePremier()
-           #nouveau.deplieToutEtReaffiche()
-      else :
-           self.node.setSelected(False)
-           nouveau.setSelected(True)
-           self.node.tree.setCurrentItem(nouveau)
-      if event != None : event.accept()
-      
-         
-
-  def creeListeCommande(self,filtre):
-      listeGroupes,dictGroupes=self.jdc.getGroups()
-      sensibleALaCasse=self.RBCasse.isChecked()
-      if "CACHE" in dictGroupes: aExclure=list(dictGroupes["CACHE"])
-      else: aExclure=[]
-      listeACreer=[]
-      listeEtapesDejaPresentes=[]
-      if self.editor.maConfiguration.rendVisiblesLesCaches :
-         for e in self.jdc.etapes:
-            listeEtapesDejaPresentes.append(e.nom)
-         for c in aExclure :
-             if c not in listeEtapesDejaPresentes : aExclure.remove(c)
-      for e in self.jdc.etapes:
-          print (e.nom)
-          print (e.definition.repetable)
-          if e.definition.repetable == 'n' : aExclure.append(e.nom)
-      print (aExclure)
-      for l in self.jdc.getListeCmd():
-         print (l)
-         if l not in aExclure : 
-            if sensibleALaCasse and (filtre != None and not filtre in l) : continue
-            if (not sensibleALaCasse) and filtre != None and (not filtre in l) and (not filtre.upper() in l) : continue
-            listeACreer.append(l)
-      return listeACreer
-
-  def ajouteRadioButtons(self):
-      if self.editor.maConfiguration.nombreDeBoutonParLigne != 0 :
-         self.ajoutePushButtons()
-         return
-      filtre=str(self.LEFiltre.text())
-      if filtre==str("") : filtre=None
-      if hasattr(self,'buttonGroup') :
-         for b in self.buttonGroup.buttons():
-             self.buttonGroup.removeButton(b)
-             b.setParent(None)
-             b.close()
-      else :
-         self.buttonGroup = QButtonGroup()
-      for w in self.listeWidget :
-         w.setParent(None)
-         w.close()
-      self.listeWidget=[]
-      if self.boolAlpha==1 :
-         liste=self.creeListeCommande(filtre)
-         for cmd in liste :
-           self.dicoCmd[tr(cmd)]=cmd
-           rbcmd=(QRadioButton(tr(cmd)))
-           self.buttonGroup.addButton(rbcmd)
-           self.commandesLayout.addWidget(rbcmd)
-           #if self.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
-           #else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-           #self.buttonGroup.buttonClicked.connect(self.rbClique) 
-           if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-         if self.simpleClic :  
-            self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-         else :
-            self.buttonGroup.buttonClicked.connect(self.rbClique) 
-      elif  self.boolGroupe==1 :
-         listeGroupes,dictGroupes=self.jdc.getGroups()
-         for grp in listeGroupes:
-           if grp == "CACHE" : continue
-           label=QLabel(self)
-           text=tr('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+tr(grp)+'</span></p></body></html>')
-           label.setText(text)
-           self.listeWidget.append(label)
-           aAjouter=1
-           sensibleALaCasse=self.RBCasse.isChecked()
-           for cmd in  dictGroupes[grp]:
-              if sensibleALaCasse and (filtre != None and not filtre in cmd) : continue
-              if (not sensibleALaCasse) and filtre != None and (not filtre in cmd) and (not filtre.upper() in cmd) : continue
-              if aAjouter == 1 :
-                 self.commandesLayout.addWidget(label)
-                 aAjouter=0
-              self.dicoCmd[tr(cmd)]=cmd
-              rbcmd=(QRadioButton(tr(cmd)))
-              self.buttonGroup.addButton(rbcmd)
-              self.commandesLayout.addWidget(rbcmd)
-              if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-           if self.simpleClic :  
-             self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-           else :
-             self.buttonGroup.buttonClicked.connect(self.rbClique) 
-           label2=QLabel(self)
-           label2.setText(" ")
-           self.listeWidget.append(label2)
-           self.commandesLayout.addWidget(label2)
-      elif  self.boolOrdre==1 :
-         listeFiltre=self.creeListeCommande(filtre)
-         liste=[]
-         if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
-         else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
-         for cmd in Ordre_Des_Commandes :
-            if cmd in listeFiltre :
-                 liste.append(cmd)
-         for cmd in liste :
-           self.dicoCmd[tr(cmd)]=cmd
-           rbcmd=(QRadioButton(tr(cmd)))
-           self.buttonGroup.addButton(rbcmd)
-           self.commandesLayout.addWidget(rbcmd)
-           if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-         if self.simpleClic :  
-            self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-         else :
-            self.buttonGroup.buttonClicked.connect(self.rbClique) 
-
-     
-
-  def ajoutePushButtons(self):
-      if hasattr(self,'buttonGroup') :
-         for b in self.buttonGroup.buttons():
-             self.buttonGroup.removeButton(b)
-             b.setParent(None)
-             b.close()
-      else :
-         self.buttonGroup = QButtonGroup()
-         self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-      for w in self.listeWidget :
-         w.setParent(None)
-         w.close()
-      self.listeWidget=[]
-
-      if not hasattr(self,'maGrilleBouton') :
-         #self.commandesLayout.close()
-         self.maGrilleBouton=QGridLayout()
-         self.maGrilleBouton.setSpacing(20)
-         self.verticalLayout.addLayout(self.maGrilleBouton)
-      col=-1
-      ligne = 0
-
-      if self.boolAlpha==1 :
-         liste=self.creeListeCommande(None)
-      elif  self.boolOrdre:
-         liste=self.creeListeCommande(None)
-         listeFiltre=self.creeListeCommande(None)
-         liste=[]
-         if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
-         else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
-         for cmd in Ordre_Des_Commandes :
-            if cmd in listeFiltre :
-                 liste.append(cmd)
-      for cmd in liste :
-           col=col+1
-           if col == self.editor.maConfiguration.nombreDeBoutonParLigne :
-              col=0
-              ligne=ligne+1
-           self.dicoCmd[tr(cmd)]=cmd
-           rbcmd=QPushButton(tr(cmd))
-           rbcmd.setGeometry(QRect(40, 20, 211, 71))
-           rbcmd.setMaximumSize(QSize(250, 81))
-           rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
+    """
+    """
+    def __init__(self,node, jdc_item, editor):
+        QWidget.__init__(self,parent=None)
+        self.setupUi(self)
+
+        self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
+        iconeFile=os.path.join(self.repIcon,'lettreRblanc30.png')
+        icon = QIcon(iconeFile)
+        self.RBRegle.setIcon(icon)
+        self.RBRegle.setIconSize(QSize(21, 31))
+
+        self.item = jdc_item
+        self.node = node
+        self.editor = editor
+        self.simpleClic=self.editor.maConfiguration.simpleClic
+        self.jdc  = self.item.object.getJdcRoot()
+        debutTitre=self.editor.titre
+        self.listeWidget=[]
+        self.dicoCmd={}
+        if self.editor.fichier != None :
+            nouveauTitre=debutTitre+" "+os.path.basename(self.editor.fichier)
+        else :
+            nouveauTitre=debutTitre
+        self.editor.appliEficas.setWindowTitle(nouveauTitre)
+
+
+        self.RBalpha.clicked.connect(self.afficheAlpha)
+        self.RBGroupe.clicked.connect(self.afficheGroupe)
+        self.RBOrdre.clicked.connect(self.afficheOrdre)
+        self.RBClear.clicked.connect(self.clearFiltre)
+        self.RBCasse.toggled.connect(self.ajouteRadioButtons)
+        self.LEFiltre.returnPressed.connect(self.ajouteRadioButtons)
+        self.LEFiltre.textChanged.connect(self.ajouteRadioButtons)
+
+        if self.node.tree.item.getRegles() == () :
+            self.RBRegle.close()
+            self.labelRegle.close()
+        else :
+            self.RBRegle.clicked.connect(self.afficheRegle)
+
+        if self.editor.readercata.Ordre_Des_Commandes == None : self.RBOrdre.close()
+
+
+        #self.editor.labelCommentaire.setText("")
+        if self.editor.widgetOptionnel!= None :
+            self.editor.fermeOptionnel()
+            self.editor.widgetOptionnel=None
+        self.name=None
+
+        self.boolAlpha=0
+        self.boolGroupe=0
+        self.boolOrdre=0
+        if self.editor.maConfiguration.affiche=="alpha"  :
+            self.boolAlpha==1;
+            self.RBalpha.setChecked(True);
+            self.afficheAlpha()
+        elif self.editor.maConfiguration.affiche=="groupe" :
+            self.boolGroupe==1;
+            self.RBGroupe.setChecked(True);
+            self.afficheGroupe()
+        elif self.editor.maConfiguration.affiche=="ordre"  :
+            self.boolOrdre==1;
+            self.RBOrdre.setChecked(True);
+            self.afficheOrdre()
+        if self.editor.maConfiguration.closeFrameRechercheCommandeSurPageDesCommandes == True : self.frameAffichage.close()
+
+        if self.editor.widgetTree != None : self.editor.restoreSplitterSizes(2)
+        else: self.editor.restoreSplitterSizes(3)
+
+    def afficheRegle(self):
+        self.node.tree.appellebuildLBRegles()
+
+    def afficheAlpha(self):
+        self.boolAlpha=1
+        self.boolGroupe=0
+        self.boolOrdre=0
+        self.ajouteRadioButtons()
+
+    def afficheGroupe(self):
+        self.boolAlpha=0
+        self.boolGroupe=1
+        self.boolOrdre=0
+        self.ajouteRadioButtons()
+
+    def afficheOrdre(self):
+        self.boolAlpha=0
+        self.boolGroupe=0
+        self.boolOrdre=1
+        self.ajouteRadioButtons()
+
+    def insereNoeudApresClick(self,event):
+        #print self.editor.Classement_Commandes_Ds_Arbre
+        #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu()
+        #print ('dans insereNoeudApresClick')
+        nodeCourrant=self.node.tree.currentItem()
+        if nodeCourrant==None: nodeCourrant=self.node.tree.racine
+        if self.name != None :
+            plier=self.editor.maConfiguration.afficheCommandesPliees
+            if nodeCourrant==self.node : nouveau=self.node.appendChild(self.name,'first',plier)
+            else : nouveau=nodeCourrant.appendBrother(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()
+        if self.editor.afficheApresInsert == True :
+            #if self.editor.affichePlie==True:  nouveau.plieToutEtReaffiche()
+            if self.editor.maConfiguration.afficheCommandesPliees ==True:  nouveau.plieToutEtReaffiche()
+            else : nouveau.deplieToutEtReaffiche()
+            nouveau.fenetre.donnePremier()
+            #nouveau.deplieToutEtReaffiche()
+        else :
+            self.node.setSelected(False)
+            nouveau.setSelected(True)
+            self.node.tree.setCurrentItem(nouveau)
+        if event != None : event.accept()
+
+
+
+    def creeListeCommande(self,filtre):
+        listeGroupes,dictGroupes=self.jdc.getGroups()
+        sensibleALaCasse=self.RBCasse.isChecked()
+        if "CACHE" in dictGroupes: aExclure=list(dictGroupes["CACHE"])
+        else: aExclure=[]
+        listeACreer=[]
+        listeEtapesDejaPresentes=[]
+        if self.editor.maConfiguration.rendVisiblesLesCaches :
+            for e in self.jdc.etapes:
+                listeEtapesDejaPresentes.append(e.nom)
+            for c in aExclure :
+                if c not in listeEtapesDejaPresentes : aExclure.remove(c)
+        for e in self.jdc.etapes:
+            print (e.nom)
+            print (e.definition.repetable)
+            if e.definition.repetable == 'n' : aExclure.append(e.nom)
+        print (aExclure)
+        for l in self.jdc.getListeCmd():
+            print (l)
+            if l not in aExclure :
+                if sensibleALaCasse and (filtre != None and not filtre in l) : continue
+                if (not sensibleALaCasse) and filtre != None and (not filtre in l) and (not filtre.upper() in l) : continue
+                listeACreer.append(l)
+        return listeACreer
+
+    def ajouteRadioButtons(self):
+        if self.editor.maConfiguration.nombreDeBoutonParLigne != 0 :
+            self.ajoutePushButtons()
+            return
+        filtre=str(self.LEFiltre.text())
+        if filtre==str("") : filtre=None
+        if hasattr(self,'buttonGroup') :
+            for b in self.buttonGroup.buttons():
+                self.buttonGroup.removeButton(b)
+                b.setParent(None)
+                b.close()
+        else :
+            self.buttonGroup = QButtonGroup()
+        for w in self.listeWidget :
+            w.setParent(None)
+            w.close()
+        self.listeWidget=[]
+        if self.boolAlpha==1 :
+            liste=self.creeListeCommande(filtre)
+            for cmd in liste :
+                self.dicoCmd[tr(cmd)]=cmd
+                rbcmd=(QRadioButton(tr(cmd)))
+                self.buttonGroup.addButton(rbcmd)
+                self.commandesLayout.addWidget(rbcmd)
+                #if self.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+                #else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+                #self.buttonGroup.buttonClicked.connect(self.rbClique)
+                if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+            if self.simpleClic :
+                self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+            else :
+                self.buttonGroup.buttonClicked.connect(self.rbClique)
+        elif  self.boolGroupe==1 :
+            listeGroupes,dictGroupes=self.jdc.getGroups()
+            for grp in listeGroupes:
+                if grp == "CACHE" : continue
+                label=QLabel(self)
+                text=tr('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+tr(grp)+'</span></p></body></html>')
+                label.setText(text)
+                self.listeWidget.append(label)
+                aAjouter=1
+                sensibleALaCasse=self.RBCasse.isChecked()
+                for cmd in  dictGroupes[grp]:
+                    if sensibleALaCasse and (filtre != None and not filtre in cmd) : continue
+                    if (not sensibleALaCasse) and filtre != None and (not filtre in cmd) and (not filtre.upper() in cmd) : continue
+                    if aAjouter == 1 :
+                        self.commandesLayout.addWidget(label)
+                        aAjouter=0
+                    self.dicoCmd[tr(cmd)]=cmd
+                    rbcmd=(QRadioButton(tr(cmd)))
+                    self.buttonGroup.addButton(rbcmd)
+                    self.commandesLayout.addWidget(rbcmd)
+                    if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+                if self.simpleClic :
+                    self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+                else :
+                    self.buttonGroup.buttonClicked.connect(self.rbClique)
+                label2=QLabel(self)
+                label2.setText(" ")
+                self.listeWidget.append(label2)
+                self.commandesLayout.addWidget(label2)
+        elif  self.boolOrdre==1 :
+            listeFiltre=self.creeListeCommande(filtre)
+            liste=[]
+            if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
+            else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
+            for cmd in Ordre_Des_Commandes :
+                if cmd in listeFiltre :
+                    liste.append(cmd)
+            for cmd in liste :
+                self.dicoCmd[tr(cmd)]=cmd
+                rbcmd=(QRadioButton(tr(cmd)))
+                self.buttonGroup.addButton(rbcmd)
+                self.commandesLayout.addWidget(rbcmd)
+                if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+            if self.simpleClic :
+                self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+            else :
+                self.buttonGroup.buttonClicked.connect(self.rbClique)
+
+
+
+    def ajoutePushButtons(self):
+        if hasattr(self,'buttonGroup') :
+            for b in self.buttonGroup.buttons():
+                self.buttonGroup.removeButton(b)
+                b.setParent(None)
+                b.close()
+        else :
+            self.buttonGroup = QButtonGroup()
+            self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+        for w in self.listeWidget :
+            w.setParent(None)
+            w.close()
+        self.listeWidget=[]
+
+        if not hasattr(self,'maGrilleBouton') :
+            #self.commandesLayout.close()
+            self.maGrilleBouton=QGridLayout()
+            self.maGrilleBouton.setSpacing(20)
+            self.verticalLayout.addLayout(self.maGrilleBouton)
+        col=-1
+        ligne = 0
+
+        if self.boolAlpha==1 :
+            liste=self.creeListeCommande(None)
+        elif  self.boolOrdre:
+            liste=self.creeListeCommande(None)
+            listeFiltre=self.creeListeCommande(None)
+            liste=[]
+            if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
+            else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
+            for cmd in Ordre_Des_Commandes :
+                if cmd in listeFiltre :
+                    liste.append(cmd)
+        for cmd in liste :
+            col=col+1
+            if col == self.editor.maConfiguration.nombreDeBoutonParLigne :
+                col=0
+                ligne=ligne+1
+            self.dicoCmd[tr(cmd)]=cmd
+            rbcmd=QPushButton(tr(cmd))
+            rbcmd.setGeometry(QRect(40, 20, 211, 71))
+            rbcmd.setMaximumSize(QSize(250, 81))
+            rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
 "/*border-style : outset;*/\n"
 "border-radius : 20px;\n"
 "border-width : 30 px;\n"
 "border-color : beige;\n"
 "text-align : center")
-           #print ('self.editor.maConfiguration.dicoImages', self.editor.maConfiguration.dicoImages)
-           if cmd in self.editor.maConfiguration.dicoImages :
-              fichier=self.editor.maConfiguration.dicoImages[cmd]
-              icon = QIcon()
-              icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
-              rbcmd.setIcon(icon)
-              rbcmd.setIconSize(QSize(48, 48))
-
-           self.buttonGroup.addButton(rbcmd)
-           self.maGrilleBouton.addWidget(rbcmd,ligne,col)
-
-  def clearFiltre(self):
-      self.LEFiltre.setText("")
-      self.ajouteRadioButtons()
-
-  def rbCliqueEtInsere(self,id):
-      self.rbClique(id)
-      self.insereNoeudApresClick(None)
-
-  def rbClique(self,id):
-      try : 
-        self.name=self.dicoCmd[id.text()]
-      except : 
+            #print ('self.editor.maConfiguration.dicoImages', self.editor.maConfiguration.dicoImages)
+            if cmd in self.editor.maConfiguration.dicoImages :
+                fichier=self.editor.maConfiguration.dicoImages[cmd]
+                icon = QIcon()
+                icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+                rbcmd.setIcon(icon)
+                rbcmd.setIconSize(QSize(48, 48))
+
+            self.buttonGroup.addButton(rbcmd)
+            self.maGrilleBouton.addWidget(rbcmd,ligne,col)
+
+    def clearFiltre(self):
+        self.LEFiltre.setText("")
+        self.ajouteRadioButtons()
+
+    def rbCliqueEtInsere(self,id):
+        self.rbClique(id)
+        self.insereNoeudApresClick(None)
+
+    def rbClique(self,id):
+
         try :
-          self.name=self.dicoCmd[str(id.text())]
+            self.name=self.dicoCmd[id.text()]
         except :
-          print ('pb d accent : contacter la maintenance')
+            try :
+                self.name=self.dicoCmd[str(id.text())]
+            except :
+                print ('pb d accent : contacter la maintenance')
 
-      definitionEtape=getattr(self.jdc.cata,self.name)
-      #commentaire=getattr(definitionEtape,self.jdc.lang)
-      try :
-        commentaire=getattr(definitionEtape,self.jdc.lang)
-      except :
+        definitionEtape=getattr(self.jdc.cata,self.name)
+        #commentaire=getattr(definitionEtape,self.jdc.lang)
         try :
-           commentaire=getattr(definitionEtape,"ang")
+            commentaire=getattr(definitionEtape,self.jdc.lang)
         except :
-           commentaire=""
-      self.editor.afficheCommentaire(commentaire)
+            try :
+                commentaire=getattr(definitionEtape,"ang")
+            except :
+                commentaire=""
+        self.editor.afficheCommentaire(commentaire)
 
 
 
-  def setValide(self):
-      #PNPN a priori pas d icone mais peut-etre a faire
-      pass
+    def setValide(self):
+        #PNPN a priori pas d icone mais peut-etre a faire
+        pass
index decc00bec370fe8b38978c9224417ae5875b9473..f7211aca8be2a755a782239c9926d805ef9bfee5 100644 (file)
@@ -28,31 +28,30 @@ from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup
 from PyQt5.QtGui import QPalette
 from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize
 
-    
+
 # Import des panels
 
 class MonChoixLangue(Ui_ChoixLangue,QDialog):
-  """
-  Classe definissant le panel associe aux mots-cles qui demandent
-  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discretes
-  """
-  def __init__(self,  appliEficas=None):
-      QDialog.__init__(self,appliEficas)
-      self.setModal(True)
-      self.setupUi(self)
-      self.appliEficas=appliEficas
-      self.installLangue()
-      self.code=None
-      self.pB_OK.clicked.connect(self.choisitLangue)
-
-
-  def installLangue(self):
-      if self.appliEficas.langue == 'fr' : self.rbFrancais.setChecked(True)
-      else : self.rbEnglish.setChecked(True)
-
-  def choisitLangue(self):
-      if self.rbFrancais.isChecked() : self.appliEficas.langue='fr'
-      else                           : self.appliEficas.langue ='ang'
-      self.close()
-
+    """
+    Classe definissant le panel associe aux mots-cles qui demandent
+    a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+    discretes
+    """
+    def __init__(self,  appliEficas=None):
+        QDialog.__init__(self,appliEficas)
+        self.setModal(True)
+        self.setupUi(self)
+        self.appliEficas=appliEficas
+        self.installLangue()
+        self.code=None
+        self.pB_OK.clicked.connect(self.choisitLangue)
+
+
+    def installLangue(self):
+        if self.appliEficas.langue == 'fr' : self.rbFrancais.setChecked(True)
+        else : self.rbEnglish.setChecked(True)
+
+    def choisitLangue(self):
+        if self.rbFrancais.isChecked() : self.appliEficas.langue='fr'
+        else                           : self.appliEficas.langue ='ang'
+        self.close()
index 93dd41026fa4f2d2b45843a2d33c93794fc8b8ce..dd9ca650d85b87af82995e897f71ce82de81d700 100644 (file)
@@ -20,8 +20,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
@@ -40,28 +40,28 @@ class MonFonctionPanel(MonPlusieursBasePanel):
 #  Classe definissant le panel associee aux mots-cles qui demandent
 #  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
 #  discretes
-  def __init__(self,node, parent = None,name = None,fl = 0):
+    def __init__(self,node, parent = None,name = None,fl = 0):
         #print "MonFonctionPanel"
         self.node=node
         self.setNbValeurs()
         MonPlusieursBasePanel.__init__(self,node,parent,name,fl)
 
-  def setNbValeurs(self):
+    def setNbValeurs(self):
         self.nbValeurs = 1
         if self.node.item.waitTuple()== 1 :
-           for a in self.node.item.definition.type :
-               try :
-                   self.nbValeurs = a.ntuple
-                   break
-               except :
-                   pass
+            for a in self.node.item.definition.type :
+                try :
+                    self.nbValeurs = a.ntuple
+                    break
+                except :
+                    pass
         genea=self.node.item.getGenealogie()
         self.nbValeursASaisir=self.nbValeurs
         if "VALE" in genea: self.nbValeurs=2
         if "VALE_C" in genea: self.nbValeurs=3
 
 
-  def decoupeListeValeurs(self,liste):
+    def decoupeListeValeurs(self,liste):
         #decoupe la liste des valeurs en n ( les x puis les y)
         l_valeurs=[]
         if ((len(liste)% self.nbValeursASaisir != 0 and (len(liste)% self.nbValeurs))):
@@ -70,114 +70,114 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         i=0
         while ( i < len(liste) ) :
             try :
-              t=tuple(liste[i:i+self.nbValeurs])
-              i=i+self.nbValeurs
+                t=tuple(liste[i:i+self.nbValeurs])
+                i=i+self.nbValeurs
             except:
-              t=tuple(liste[i:len(liste)])
+                t=tuple(liste[i:len(liste)])
             l_valeurs.append(t)
         return l_valeurs
 
-  def buildLBValeurs(self,listeValeurs=None):
+    def buildLBValeurs(self,listeValeurs=None):
         self.LBValeurs.clear()
         if listeValeurs== None :
-           listeValeurs=self.node.item.getListeValeurs()
+            listeValeurs=self.node.item.getListeValeurs()
         if self.node.item.waitTuple()== 1 :
-             listeATraiter=listeValeurs
-              for valeur in listeATraiter:
-                  str_valeur=str(valeur)
-                  self.LBValeurs.addItem(str_valeur)
-        else : 
-             for valeur in self.decoupeListeValeurs(listeValeurs):
-                   if type(valeur) == tuple:
-                       TupleEnTexte="("
-                       for val in valeur :
-                           TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
-                       TupleEnTexte = TupleEnTexte[0:-2] +")"
-                       self.LBValeurs.addItem(TupleEnTexte)
-                   else :
-                       self.LBValeurs.addItem(str(valeur))
-
-
-  def  ajout1Valeur(self,liste=[]):
+            listeATraiter=listeValeurs
+            for valeur in listeATraiter:
+                str_valeur=str(valeur)
+                self.LBValeurs.addItem(str_valeur)
+        else :
+            for valeur in self.decoupeListeValeurs(listeValeurs):
+                if type(valeur) == tuple:
+                    TupleEnTexte="("
+                    for val in valeur :
+                        TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
+                    TupleEnTexte = TupleEnTexte[0:-2] +")"
+                    self.LBValeurs.addItem(TupleEnTexte)
+                else :
+                    self.LBValeurs.addItem(str(valeur))
+
+
+    def  ajout1Valeur(self,liste=[]):
         # Pour etre appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
         validite=1
         if liste == [] :
-           if self.node.item.waitTuple()== 1 :
-              liste=SaisieValeur.TraiteLEValeurTuple(self)
-              if liste == [''] : return
-           else :
-              liste,validite=SaisieValeur.TraiteLEValeur(self)
-              if validite == 0 : return
+            if self.node.item.waitTuple()== 1 :
+                liste=SaisieValeur.TraiteLEValeurTuple(self)
+                if liste == [''] : return
+            else :
+                liste,validite=SaisieValeur.TraiteLEValeur(self)
+                if validite == 0 : return
         if liste ==[]    : return
 
         if (self.node.item.waitTuple()== 1 and len(liste) != self.nbValeurs):
-            commentaire  = str(liste) 
-            commentaire += tr(" n est pas un tuple de ") 
-            commentaire += str(self.nbValeursASaisir) 
+            commentaire  = str(liste)
+            commentaire += tr(" n est pas un tuple de ")
+            commentaire += str(self.nbValeursASaisir)
             commentaire += tr(" valeurs")
-           self.LEValeur.setText(str(liste))
+            self.LEValeur.setText(str(liste))
             self.editor.afficheInfos(commentaire,Qt.red)
             return
 
         if self.node.item.waitTuple()== 1 :
-              liste2=tuple(liste)
-              liste=liste2
+            liste2=tuple(liste)
+            liste=liste2
 
         index=self.LBValeurs.currentRow()
         if ((self.LBValeurs.isItemSelected(self.LBValeurs.item(index )) == 0) and (index > 0 )):
-           index=0
+            index=0
         else :
-           index=self.LBValeurs.currentRow() + 1
+            index=self.LBValeurs.currentRow() + 1
         indexListe=index*self.nbValeurs
         if index == 0 : indexListe=len(self.listeValeursCourantes)
 
         listeVal=[]
         for valeur in self.listeValeursCourantes :
-                listeVal.append(valeur)
+            listeVal.append(valeur)
         if self.node.item.waitTuple()== 1 :
-             indexListe = index
-             validite,comm,comm2,listeRetour=self.politique.ajoutTuple(liste,index,listeVal)
+            indexListe = index
+            validite,comm,comm2,listeRetour=self.politique.ajoutTuple(liste,index,listeVal)
         else :
-             validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,index,listeVal)
+            validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,index,listeVal)
         self.Commentaire.setText(tr(comm2))
         if not validite :
-                self.editor.afficheInfos(comm,Qt.red)
+            self.editor.afficheInfos(comm,Qt.red)
         else:
-           self.LEValeur.setText("")
-           l1=self.listeValeursCourantes[:indexListe]
-           l3=self.listeValeursCourantes[indexListe:]
-           if self.node.item.waitTuple()== 1 :
-             listeATraiter=listeRetour
-           else : 
-              listeATraiter=self.decoupeListeValeurs(listeRetour)
-           for valeur in  listeATraiter :
-               if type(valeur) == tuple:
-                  TupleEnTexte="("
-                  for val in valeur :
-                      TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
-                  str_valeur = TupleEnTexte[0:-2] +")"
-               else :
-                  str_valeur=str(valeur)
-               self.LBValeurs.insertItem(index,str_valeur)
-               item=self.LBValeurs.item(index)
-               item.setSelected(1)
-               self.LBValeurs.setCurrentItem(item)
-               index=index+1
-           self.listeValeursCourantes=l1+listeRetour+l3
-           self.buildLBValeurs(self.listeValeursCourantes)
-
-
-  def ajoutNValeur(self,liste) :
+            self.LEValeur.setText("")
+            l1=self.listeValeursCourantes[:indexListe]
+            l3=self.listeValeursCourantes[indexListe:]
+            if self.node.item.waitTuple()== 1 :
+                listeATraiter=listeRetour
+            else :
+                listeATraiter=self.decoupeListeValeurs(listeRetour)
+            for valeur in  listeATraiter :
+                if type(valeur) == tuple:
+                    TupleEnTexte="("
+                    for val in valeur :
+                        TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
+                    str_valeur = TupleEnTexte[0:-2] +")"
+                else :
+                    str_valeur=str(valeur)
+                self.LBValeurs.insertItem(index,str_valeur)
+                item=self.LBValeurs.item(index)
+                item.setSelected(1)
+                self.LBValeurs.setCurrentItem(item)
+                index=index+1
+            self.listeValeursCourantes=l1+listeRetour+l3
+            self.buildLBValeurs(self.listeValeursCourantes)
+
+
+    def ajoutNValeur(self,liste) :
         if len(liste)%self.nbValeurs != 0 :
-           texte="Nombre de valeur incorrecte"
-           #self.Commentaire.setText(texte)
-           self.editor.afficheInfos(texte,Qt.red)
-           return
+            texte="Nombre de valeur incorrecte"
+            #self.Commentaire.setText(texte)
+            self.editor.afficheInfos(texte,Qt.red)
+            return
         listeDecoupee=self.decoupeListeValeurs(liste)
         for vals in listeDecoupee :
             self.ajout1Valeur(vals)
-           
-  def sup1Valeur(self):
+
+    def sup1Valeur(self):
         index=self.LBValeurs.currentRow()
         if index == None : return
         removed_item = self.LBValeurs.takeItem(index)
@@ -189,14 +189,12 @@ class MonFonctionPanel(MonPlusieursBasePanel):
             indexAOter=index*self.nbValeurs + i
             indexInterdit.append(indexAOter)
         if self.node.item.waitTuple()== 1 :
-           indexInterdit=[index]
+            indexInterdit=[index]
 
         i=0
         for valeur in self.listeValeursCourantes :
-            if not (i in indexInterdit) : 
+            if not (i in indexInterdit) :
                 listeVal.append(valeur)
             i = i+1
         self.listeValeursCourantes=listeVal
         listeValeurs=self.listeValeursCourantes
-
-      
index 7b17edbab88ec89ded5799ba2c075941586acb6c..3bc3f94233d2a6618114d0899efc8b17a2b65a27 100644 (file)
@@ -28,161 +28,160 @@ from Extensions.i18n    import tr
 from desGroupeOptionnel import Ui_groupeOptionnel
 from desPBOptionnelMT   import Ui_customPB
 
-    
+
 # Import des panels
 
 class MonRBButtonCustom(QCheckBox):
 
-   def __init__(self,texte,monOptionnel,parent=None,couleur=None):
-      QCheckBox.__init__(self,tr(texte),parent)
-      self.mousePressed=True
-      self.monOptionnel=monOptionnel
-      self.setToolTip(tr("clicker: affichage aide, double-click: ajout"))
-      if couleur != None :
-         mapalette=self.palette()
-         mapalette.setColor( QPalette.WindowText, couleur )
-         mapalette.setColor( QPalette.Base, Qt.green )
-         self.setPalette( mapalette );
-         self.setText(tr(texte))
-         try :
-           monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
-           self.setToolTip(monToolTip)
-         except :
-           pass
-
-
-   def mouseDoubleClickEvent(self, event):
-      #print "dans mouseDoubleClickEvent", self
-      if self not in self.monOptionnel.dicoCb: 
-         event.accept()
-         return
-      listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
-      self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
-      event.accept()
-      
-
-   def mousePressEvent(self, event):
-      if not( event.button() != Qt.RightButton)  : 
-         event.accept()
-         return
-      if self.monOptionnel.cbPressed != None :
-         self.monOptionnel.cbPressed.setChecked(False)
-      self.monOptionnel.cbPressed=self
-      if self.mousePressed == False :
-         self.mousePressed=True
-      else :
-         self.mousePressed=False
-         self.ajoutAideMC()
-      QCheckBox.mousePressEvent(self, event)
-      event.accept()
-
-   def ajoutAideMC(self):
-      try :
-        maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
-        maLangue =  self.monOptionnel.parentMC.jdc.lang
-        if hasattr(maDefinition,maLangue): 
-          self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
-        else : 
-          self.monAide = ""
-      except :
-          self.monAide = ""
-      self.monOptionnel.parentMC.editor.afficheCommentaire(self.monAide)
-  
+    def __init__(self,texte,monOptionnel,parent=None,couleur=None):
+        QCheckBox.__init__(self,tr(texte),parent)
+        self.mousePressed=True
+        self.monOptionnel=monOptionnel
+        self.setToolTip(tr("clicker: affichage aide, double-click: ajout"))
+        if couleur != None :
+            mapalette=self.palette()
+            mapalette.setColor( QPalette.WindowText, couleur )
+            mapalette.setColor( QPalette.Base, Qt.green )
+            self.setPalette( mapalette );
+            self.setText(tr(texte))
+            try :
+                monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
+                self.setToolTip(monToolTip)
+            except :
+                pass
+
+
+    def mouseDoubleClickEvent(self, event):
+        #print "dans mouseDoubleClickEvent", self
+        if self not in self.monOptionnel.dicoCb:
+            event.accept()
+            return
+        listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
+        self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
+        event.accept()
+
+
+    def mousePressEvent(self, event):
+        if not( event.button() != Qt.RightButton)  :
+            event.accept()
+            return
+        if self.monOptionnel.cbPressed != None :
+            self.monOptionnel.cbPressed.setChecked(False)
+        self.monOptionnel.cbPressed=self
+        if self.mousePressed == False :
+            self.mousePressed=True
+        else :
+            self.mousePressed=False
+            self.ajoutAideMC()
+        QCheckBox.mousePressEvent(self, event)
+        event.accept()
+
+    def ajoutAideMC(self):
+        try :
+            maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
+            maLangue =  self.monOptionnel.parentMC.jdc.lang
+            if hasattr(maDefinition,maLangue):
+                self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
+            else :
+                self.monAide = ""
+        except :
+            self.monAide = ""
+        self.monOptionnel.parentMC.editor.afficheCommentaire(self.monAide)
+
 class MonPBButtonCustom(QWidget,Ui_customPB):
 
-   def __init__(self,texte,monOptionnel,parent=None,couleur=None):
-      QWidget.__init__(self)
-      self.setupUi(self)
-      if couleur != None :
-         self.monPb.setText(texte)
-         self.monPb.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')
-         #mapalette=self.monPb.palette()
-         #mapalette.setColor( QPalette.ButtonText, Qt.red )
-         #self.monPb.setPalette( mapalette )
-         self.monPb.update()
-         #self.update()
-         try :
-           monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
-           self.monPb.setToolTip(monToolTip)
-         except :
-           pass
-      self.monPb.setText(texte)
-      self.monPb.clicked.connect(self.ajoutMC)
-
-      self.texte=texte
-      self.monOptionnel=monOptionnel
-      self.definitAideMC()
-      self.setToolTip(self.monAide)
-
-   def ajoutMC (self) :
-      listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
-      self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
-
-   def definitAideMC(self):
-      try :
-        maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
-        maLangue =  self.monOptionnel.parentMC.jdc.lang
-        if hasattr(maDefinition,maLangue): 
-          self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
-      except :
-          self.monAide = ""
-        
-class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
-  """
-  """
-  def __init__(self,liste,liste_rouge,parentQt,parentMC):
-     #print ("dans init de monWidgetOptionnel ", parentQt, liste,parentMC)
-     QWidget.__init__(self,None)
-     self.setupUi(self)
-     self.listeChecked=[]
-     self.dicoCb={}
-     self.mousePressed=False
-     self.cbPressed=None
-     self.cb=None
-     self.parentQt=parentQt
-     self.parentMC=parentMC
-     
-
-     if liste != [] : 
-        self.affiche(liste,liste_rouge)
-        self.afficheTitre()
-     elif self.parentQt.parentQt.maConfiguration.afficheOptionnelVide != False : 
-        self.afficheTitre()
-        self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
-     else :
-        self.frameLabelMC.close()
-     #print "dans fin de monWidgetOptionnel ", parentQt
-
-
-  def afficheTitre(self):
-     labeltext,fonte,couleur = self.parentMC.node.item.getLabelText()
-     #print (labeltext)
-     l=tr(labeltext)
-     li=[]
-     while len(l) > 25:
-         li.append(l[0:24])
-         l=l[24:]
-     li.append(l)
-     texte=""
-     for l in li : texte+=l+"\n"
-     texte=texte[0:-1]
-     self.MCLabel.setText(texte)
-
-  def affiche(self,liste,liste_rouge):
-     #print ("dans Optionnel ____ affiche", liste,liste_rouge)
-     self.dicoCb={}
-     liste.reverse()
-     for mot in liste :
-         #if mot in liste_rouge : print ('je dois afficher en rouge' , mot)
-         couleur=None
-         if mot in liste_rouge : couleur=Qt.red 
-         if self.parentQt.parentQt.maConfiguration.simpleClic == False :
-            cb = MonRBButtonCustom(mot,self,couleur=couleur)
-            cb.clicked.connect(cb.ajoutAideMC)
-         else :
-            cb = MonPBButtonCustom(mot,self,couleur=couleur)
-
-         self.MCOptionnelLayout.insertWidget(0,cb)
-         self.dicoCb[cb]=mot
-     self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)
+    def __init__(self,texte,monOptionnel,parent=None,couleur=None):
+        QWidget.__init__(self)
+        self.setupUi(self)
+        if couleur != None :
+            self.monPb.setText(texte)
+            self.monPb.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')
+            #mapalette=self.monPb.palette()
+            #mapalette.setColor( QPalette.ButtonText, Qt.red )
+            #self.monPb.setPalette( mapalette )
+            self.monPb.update()
+            #self.update()
+            try :
+                monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
+                self.monPb.setToolTip(monToolTip)
+            except :
+                pass
+        self.monPb.setText(texte)
+        self.monPb.clicked.connect(self.ajoutMC)
+
+        self.texte=texte
+        self.monOptionnel=monOptionnel
+        self.definitAideMC()
+        self.setToolTip(self.monAide)
+
+    def ajoutMC (self) :
+        listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
+        self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
+
+    def definitAideMC(self):
+        try :
+            maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
+            maLangue =  self.monOptionnel.parentMC.jdc.lang
+            if hasattr(maDefinition,maLangue):
+                self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
+        except :
+            self.monAide = ""
 
+class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
+    """
+    """
+    def __init__(self,liste,liste_rouge,parentQt,parentMC):
+        #print ("dans init de monWidgetOptionnel ", parentQt, liste,parentMC)
+        QWidget.__init__(self,None)
+        self.setupUi(self)
+        self.listeChecked=[]
+        self.dicoCb={}
+        self.mousePressed=False
+        self.cbPressed=None
+        self.cb=None
+        self.parentQt=parentQt
+        self.parentMC=parentMC
+
+
+        if liste != [] :
+            self.affiche(liste,liste_rouge)
+            self.afficheTitre()
+        elif self.parentQt.parentQt.maConfiguration.afficheOptionnelVide != False :
+            self.afficheTitre()
+            self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
+        else :
+            self.frameLabelMC.close()
+        #print "dans fin de monWidgetOptionnel ", parentQt
+
+
+    def afficheTitre(self):
+        labeltext,fonte,couleur = self.parentMC.node.item.getLabelText()
+        #print (labeltext)
+        l=tr(labeltext)
+        li=[]
+        while len(l) > 25:
+            li.append(l[0:24])
+            l=l[24:]
+        li.append(l)
+        texte=""
+        for l in li : texte+=l+"\n"
+        texte=texte[0:-1]
+        self.MCLabel.setText(texte)
+
+    def affiche(self,liste,liste_rouge):
+        #print ("dans Optionnel ____ affiche", liste,liste_rouge)
+        self.dicoCb={}
+        liste.reverse()
+        for mot in liste :
+            #if mot in liste_rouge : print ('je dois afficher en rouge' , mot)
+            couleur=None
+            if mot in liste_rouge : couleur=Qt.red
+            if self.parentQt.parentQt.maConfiguration.simpleClic == False :
+                cb = MonRBButtonCustom(mot,self,couleur=couleur)
+                cb.clicked.connect(cb.ajoutAideMC)
+            else :
+                cb = MonPBButtonCustom(mot,self,couleur=couleur)
+
+            self.MCOptionnelLayout.insertWidget(0,cb)
+            self.dicoCb[cb]=mot
+        self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)
index af472949c3359b21363881c2ab1cfc2de99aec0f..a5e393cb386a9bfd7fb2897507d4f783bfd91d8c 100644 (file)
@@ -33,20 +33,19 @@ from Extensions.i18n import tr
 
 class MonLabelClic(QLabel) :
 
-     def __init__(self,parent):
+    def __init__(self,parent):
         QLabel.__init__(self,parent)
-        # Pas propre mais impossible de faire fonctionner isinstance sur Groupe, MonWidgetCommande 
+        # Pas propre mais impossible de faire fonctionner isinstance sur Groupe, MonWidgetCommande
         # PNPNPN ? a ameliorer
         if isinstance (parent,QFrame): parent=parent.parent()
         while not( hasattr(parent,'traiteClicSurLabel')) :
-             try : parent=parent.parent()
-             except : print ("pb avec MonLabelClic"); break
+            try : parent=parent.parent()
+            except : print ("pb avec MonLabelClic"); break
         self.parent=parent
 
 
-     def event(self,event) :
-         if event.type() == QEvent.MouseButtonRelease:
+    def event(self,event) :
+        if event.type() == QEvent.MouseButtonRelease:
             self.texte=self.text()
             self.parent.traiteClicSurLabel(self.texte)
-         return QLabel.event(self,event)
-
+        return QLabel.event(self,event)
index 49a431a437bd9644abe9a81e05d99829ec3898e3..aa68f39c1b290d167b4e270139e1a2d453717345 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from PyQt5.QtWidgets import  QButtonGroup, QToolButton
@@ -34,34 +34,32 @@ class MonLayoutBouton :
 #----------------------
 
 #  -------------------------------
-   def __init__(self,appliEficas):
+    def __init__(self,appliEficas):
 #  -------------------------------
 
-      self.appliEficas = appliEficas
-      self.buttonGroup = QButtonGroup()
-    
-      for etape in self.appliEficas.readercata.cata.JdC.commandes :
-        nomEtape = etape.nom
-        toolButton = QToolButton(self.appliEficas.toolBarCommande)
-        icon = QIcon()
-        if nomEtape in self.appliEficas.maConfiguration.dicoIcones:
-             fichier = self.appliEficas.maConfiguration.dicoIcones[nomEtape]
-             icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
-             toolButton.setIcon(icon)
-        else :
-             try :    label = nomEtape[0:3]
-             except : label = nomEtape
-             toolButton.setText(label)
+        self.appliEficas = appliEficas
+        self.buttonGroup = QButtonGroup()
 
-        action = self.appliEficas.toolBarCommande.addWidget(toolButton)
-        action.setVisible(True)
-        toolButton.setObjectName(nomEtape)
-        toolButton.setToolTip(tr(nomEtape))
-        self.buttonGroup.addButton(toolButton)
+        for etape in self.appliEficas.readercata.cata.JdC.commandes :
+            nomEtape = etape.nom
+            toolButton = QToolButton(self.appliEficas.toolBarCommande)
+            icon = QIcon()
+            if nomEtape in self.appliEficas.maConfiguration.dicoIcones:
+                fichier = self.appliEficas.maConfiguration.dicoIcones[nomEtape]
+                icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+                toolButton.setIcon(icon)
+            else :
+                try :    label = nomEtape[0:3]
+                except : label = nomEtape
+                toolButton.setText(label)
 
-      self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
-
-   def rbCliqueEtInsere(self,id):
-        self.appliEficas.handleAjoutEtape(id.objectName()) 
+            action = self.appliEficas.toolBarCommande.addWidget(toolButton)
+            action.setVisible(True)
+            toolButton.setObjectName(nomEtape)
+            toolButton.setToolTip(tr(nomEtape))
+            self.buttonGroup.addButton(toolButton)
 
+        self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
 
+    def rbCliqueEtInsere(self,id):
+        self.appliEficas.handleAjoutEtape(id.objectName())
index 059456cc4b62cc765bfb1b5693076659caf75e8f..e0f29b115c1dc5c4cb58c6a0f94579ead971eb0b 100644 (file)
@@ -29,36 +29,35 @@ from PyQt5.QtCore import Qt
 # Import des panels
 
 class DRecherche(Ui_desRecherche ,QDialog):
-  """
-  """
-  def __init__(self,parent = None , name = None,fl = 0):
-      QDialog.__init__(self,parent)
-      self.parentQT=parent
-      self.tree=self.parentQT.tree
-      self.setupUi(self)
-      self.PBSuivant.setDefault(True)
-      self.PBSuivant.setAutoDefault(False)
-      self.PBSuivant.clicked.connect( self.suivantClicked)
-      self.LERecherche.returnPressed.connect(self.recherche)
-      self.surLigne=0
-      self.listeTrouvee=()
-      self.nodeSurligne=None
+    """
+    """
+    def __init__(self,parent = None , name = None,fl = 0):
+        QDialog.__init__(self,parent)
+        self.parentQT=parent
+        self.tree=self.parentQT.tree
+        self.setupUi(self)
+        self.PBSuivant.setDefault(True)
+        self.PBSuivant.setAutoDefault(False)
+        self.PBSuivant.clicked.connect( self.suivantClicked)
+        self.LERecherche.returnPressed.connect(self.recherche)
+        self.surLigne=0
+        self.listeTrouvee=()
+        self.nodeSurligne=None
 
-  def suivantClicked(self):
-      #if self.motAChercher!=self.LERecherche.text(): self.recherche()
-      if self.listeTrouvee=={} : return
-      if self.surLigne > len(self.listeTrouvee) -1 : return
-      if self.nodeSurligne!=None : self.nodeSurligne.updateNodeTexteInBlack()
-      #self.listeTrouvee[self.surLigne].updateNodeTexteInBlue()
-      #self.nodeSurligne=self.listeTrouvee[self.surLigne]
-      self.listeTrouvee[self.surLigne].select()
-      self.listeTrouvee[self.surLigne].affichePanneau()
-      self.surLigne=self.surLigne+1
-      self.PBSuivant.setFocus()
-      if self.surLigne == len(self.listeTrouvee): self.surLigne=0
-
-  def recherche(self):
-      self.motAChercher=self.LERecherche.text()
-      self.listeTrouvee=self.tree.findItems(self.motAChercher,Qt.MatchContains|Qt.MatchRecursive,1)
-      self.surLigne=0
+    def suivantClicked(self):
+        #if self.motAChercher!=self.LERecherche.text(): self.recherche()
+        if self.listeTrouvee=={} : return
+        if self.surLigne > len(self.listeTrouvee) -1 : return
+        if self.nodeSurligne!=None : self.nodeSurligne.updateNodeTexteInBlack()
+        #self.listeTrouvee[self.surLigne].updateNodeTexteInBlue()
+        #self.nodeSurligne=self.listeTrouvee[self.surLigne]
+        self.listeTrouvee[self.surLigne].select()
+        self.listeTrouvee[self.surLigne].affichePanneau()
+        self.surLigne=self.surLigne+1
+        self.PBSuivant.setFocus()
+        if self.surLigne == len(self.listeTrouvee): self.surLigne=0
 
+    def recherche(self):
+        self.motAChercher=self.LERecherche.text()
+        self.listeTrouvee=self.tree.findItems(self.motAChercher,Qt.MatchContains|Qt.MatchRecursive,1)
+        self.surLigne=0
index 589964a33c50203e77284f6fc22e689d97399ea4..259cad4b5606b99bd7626a25dfb695002028562d 100644 (file)
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desRechercheCatalogue import Ui_desRechercheCatalogue
@@ -34,54 +34,53 @@ from Extensions.i18n import tr
 # Import des panels
 
 class DRechercheCatalogue (Ui_desRechercheCatalogue ,QDialog):
-  """
-  """
-  def __init__(self,parent,editor ):
-      QDialog.__init__(self,parent)
-      #self.setModal(True)
-      self.setupUi(self)
-      self.editor=editor
-      self.CBRecherche.setEditable(True)
-      self.CBRecherche.lineEdit().returnPressed.connect(self.rechercheCB)
-      self.CBRecherche.currentIndexChanged.connect(self.rechercheCB)
-      self.CBRecherche.currentTextChanged.connect(self.rechercheCB)
+    """
+    """
+    def __init__(self,parent,editor ):
+        QDialog.__init__(self,parent)
+        #self.setModal(True)
+        self.setupUi(self)
+        self.editor=editor
+        self.CBRecherche.setEditable(True)
+        self.CBRecherche.lineEdit().returnPressed.connect(self.rechercheCB)
+        self.CBRecherche.currentIndexChanged.connect(self.rechercheCB)
+        self.CBRecherche.currentTextChanged.connect(self.rechercheCB)
 
-      self.initRecherche()
+        self.initRecherche()
 
-  def initRecherche(self):
-      listeChoix=list(self.editor.readercata.dicoInverse.keys())
-      self.CBRecherche.addItem("")
-      for choix in listeChoix:
-          self.CBRecherche.addItem(choix)
-      monCompleteur=QCompleter(listeChoix,self)
-      monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
-      self.CBRecherche.setCompleter(monCompleteur)
+    def initRecherche(self):
+        listeChoix=list(self.editor.readercata.dicoInverse.keys())
+        self.CBRecherche.addItem("")
+        for choix in listeChoix:
+            self.CBRecherche.addItem(choix)
+        monCompleteur=QCompleter(listeChoix,self)
+        monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+        self.CBRecherche.setCompleter(monCompleteur)
 
 
-  def rechercheCB(self):
-      motAChercher=self.CBRecherche.lineEdit().text()
-      self.recherche(motAChercher)
+    def rechercheCB(self):
+        motAChercher=self.CBRecherche.lineEdit().text()
+        self.recherche(motAChercher)
 
 
-  def recherche(self,motAChercher):
-      if str(motAChercher)=="" or str(motAChercher) == None : return
-      if str(motAChercher) not in self.editor.readercata.dicoInverse:return
-      try :
-      #if 1  :
-        genea= self.editor.readercata.dicoInverse[str(motAChercher)]
-        listeGenea=[]
-        for t in genea : listeGenea.append(t[0])
-        listeGenea.reverse()
-        texte=''
-        i=0
-        for mc in listeGenea :
-         ligne = i*'   '+str(mc) + ' / '+tr(str(mc))+'\n' 
-         i=i+1
-         texte += ligne
-        self.teGenea.setText(texte)
-        self.teDoc.setText(getattr(genea[0][1],self.editor.appliEficas.langue))
-        
-        
-      except :
-        pass
+    def recherche(self,motAChercher):
+        if str(motAChercher)=="" or str(motAChercher) == None : return
+        if str(motAChercher) not in self.editor.readercata.dicoInverse:return
+        try :
+        #if 1  :
+            genea= self.editor.readercata.dicoInverse[str(motAChercher)]
+            listeGenea=[]
+            for t in genea : listeGenea.append(t[0])
+            listeGenea.reverse()
+            texte=''
+            i=0
+            for mc in listeGenea :
+                ligne = i*'   '+str(mc) + ' / '+tr(str(mc))+'\n'
+                i=i+1
+                texte += ligne
+            self.teGenea.setText(texte)
+            self.teDoc.setText(getattr(genea[0][1],self.editor.appliEficas.langue))
 
+
+        except :
+            pass
index 415f5948af0d38351de5aa7d34214322da76f5d0..dc8498f89a9214de9306bd9c70de358f761c4af1 100644 (file)
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desSelectVal import Ui_DSelVal
@@ -33,17 +33,17 @@ from PyQt5.QtCore import QTimer, Qt
 from PyQt5.QtGui import QPalette
 
 class DSelVal(Ui_DSelVal,QDialog):
-   def __init__(self,parent ,modal ) :
-       QDialog.__init__(self,parent)
-       self.setupUi(self)
+    def __init__(self,parent ,modal ) :
+        QDialog.__init__(self,parent)
+        self.setupUi(self)
 
 class MonSelectVal(DSelVal):
-  """
-  Classe definissant le panel associe aux mots-cles qui demandent
-  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discretes
-  """
-  def __init__(self,file,parent,name = None,fl = 0):
+    """
+    Classe definissant le panel associe aux mots-cles qui demandent
+    a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+    discretes
+    """
+    def __init__(self,file,parent,name = None,fl = 0):
         #print "MonSelectVal"
         self.parent=parent
         DSelVal.__init__(self,parent,0)
@@ -55,7 +55,7 @@ class MonSelectVal(DSelVal):
         self.initVal()
         self.connecterSignaux()
 
-  def connecterSignaux(self) :
+    def connecterSignaux(self) :
         self.Bespace.clicked.connect(self.selectEsp)
         self.BpointVirgule.clicked.connect(self.selectPoint)
         self.Bvirgule.clicked.connect(self.selectVir)
@@ -63,7 +63,7 @@ class MonSelectVal(DSelVal):
         self.BImportTout.clicked.connect(self.BImportToutPressed)
         self.parent.editor.sb.messageChanged.connect(self.messageAChanger)
 
-  def connecterSignauxQT4(self) :
+    def connecterSignauxQT4(self) :
         self.connect(self.Bespace,SIGNAL("clicked()"),self.selectEsp)
         self.connect(self.BpointVirgule,SIGNAL("clicked()"),self.selectPoint)
         self.connect(self.Bvirgule,SIGNAL("clicked()"),self.selectVir)
@@ -71,66 +71,65 @@ class MonSelectVal(DSelVal):
         self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed)
         self.connect(self.parent.editor.sb,SIGNAL("messageChanged(QString)"),self.messageAChanger)
 
-  def messageAChanger(self):
-      message=self.parent.editor.sb.currentMessage()
-      mapalette=self.sb.palette()
-      mapalette.setColor( QPalette.Text,Qt.red )
-      self.sb.setPalette( mapalette )
-      self.sb.setText(message)
-      QTimer.singleShot(3000, self.efface)
-      
-  def efface(self):
-      self.sb.setText("")
-
-  def readVal(self):
+    def messageAChanger(self):
+        message=self.parent.editor.sb.currentMessage()
+        mapalette=self.sb.palette()
+        mapalette.setColor( QPalette.Text,Qt.red )
+        self.sb.setPalette( mapalette )
+        self.sb.setText(message)
+        QTimer.singleShot(3000, self.efface)
+
+    def efface(self):
+        self.sb.setText("")
+
+    def readVal(self):
         if self.file == "" : return
         try :
-          f = open(self.file, "r")
-          self.texte = f.read()
-          f.close()
+            f = open(self.file, "r")
+            self.texte = f.read()
+            f.close()
         except :
-          QMessageBox.warning( self,tr( "Fichier Indisponible"),tr( "Lecture impossible"))
-          self.texte=""
-          return
+            QMessageBox.warning( self,tr( "Fichier Indisponible"),tr( "Lecture impossible"))
+            self.texte=""
+            return
 
-  def initVal(self):
+    def initVal(self):
         self.TBtext.clear()
         self.TBtext.setText(self.texte)
 
-  def selectEsp(self):
+    def selectEsp(self):
         self.separateur=" "
-        
-  def selectVir(self):
+
+    def selectVir(self):
         self.separateur=","
-        
-  def selectPoint(self):
+
+    def selectPoint(self):
         self.separateur=";"
-        
-  def BImportSelPressed(self):
+
+    def BImportSelPressed(self):
 
         texte = self.TBtext.textCursor().selectedText()
         textTraite=texte.replace(u'\u2029',"\n")
         self.textTraite=str(textTraite)
         self.traitement()
-        
-  def BImportToutPressed(self):
+
+    def BImportToutPressed(self):
         self.textTraite=self.texte
         self.traitement()
 
-  def traitement(self):
+    def traitement(self):
         if self.textTraite == "" : return
         if self.textTraite[-1]=="\n" : self.textTraite=self.textTraite[0:-1]
         self.textTraite=self.textTraite.replace("\n",self.separateur)
         liste1=self.textTraite.split(self.separateur)
         liste=[]
         for val in liste1 :
-          if val != '' and val != ' ' and val != self.separateur :
-            val=str(val)
-            try :
-            #if 1 :
-               val2=eval(val,{})
-               liste.append(val2)
-            except :
-              pass
-        self.parent.ajoutNValeur(liste) 
-        
+            if val != '' and val != ' ' and val != self.separateur :
+                val=str(val)
+                try :
+                #if 1 :
+                    val2=eval(val,{})
+                    liste.append(val2)
+                except :
+                    pass
+        self.parent.ajoutNValeur(liste)
index c096c8f55324a2739bf9428814a023564089bfe9..8fa3074581e8effc2543916a954ca08660518f9b 100644 (file)
@@ -41,14 +41,11 @@ class ViewRegles(Ui_viewRegles,QDialog):
 
         if entete != None : self.setWindowTitle (entete)
         for ligne in liste :
-          texte=ligne[0]
-          couleur=ligne[1]
-          if couleur==Qt.black :
-             self.LBRegles.addItem(texte)
-          else :
-             monItem=QListWidgetItem(texte)
-             monItem.setForeground(Qt.red)
-             self.LBRegles.addItem(monItem)
-
-
-        
+            texte=ligne[0]
+            couleur=ligne[1]
+            if couleur==Qt.black :
+                self.LBRegles.addItem(texte)
+            else :
+                monItem=QListWidgetItem(texte)
+                monItem.setForeground(Qt.red)
+                self.LBRegles.addItem(monItem)
index c57813abea19d6d3ec09a31907f647abba6bfd51..2262d26cd3910650b705c2d3fb66b066cb07b1d5 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -50,16 +50,16 @@ class ViewText(Ui_dView,QDialog):
         if entete != None : self.setWindowTitle (entete)
         if entete != None : self.setText (texte)
 
-        
-    def setText(self, txt ):    
+
+    def setText(self, txt ):
         self.view.setText(txt)
-        
+
     def saveFile(self):
         #recuperation du nom du fichier
         if self.editor != None :
-           dir=self.editor.appliEficas.maConfiguration.savedir
+            dir=self.editor.appliEficas.maConfiguration.savedir
         else:
-           dir='/tmp'
+            dir='/tmp'
         fn = QFileDialog.getSaveFileName(None,
                 tr("Sauvegarder le fichier"),
                 dir)
@@ -69,15 +69,13 @@ class ViewText(Ui_dView,QDialog):
 
         ulfile = os.path.abspath(fn)
         if self.editor != None :
-           self.editor.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            self.editor.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
         try:
-           f = open(fn, 'w')
-           f.write(str(self.view.toPlainText()))
-           f.close()
-           return 1
+            f = open(fn, 'w')
+            f.write(str(self.view.toPlainText()))
+            f.close()
+            return 1
         except IOError as why:
-           QMessageBox.critical(self, tr("Sauvegarder le fichier"),
-                 tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
-           return
-
-
+            QMessageBox.critical(self, tr("Sauvegarder le fichier"),
+                  tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
+            return
index 68257209497a9aa116d4474bb22ff839b446bac2..2771838fe56672653024ccc428d73e4beea1b689 100644 (file)
@@ -28,15 +28,15 @@ from PyQt5.QtWidgets import QDialog
 # Import des panels
 
 class DVisu(Ui_DVisu, QDialog):
-  """
-  """
-  def __init__(self,parent = None , name = None,fl = 0):
-      QDialog.__init__(self,parent)
-      self.setModal(True)
-      self.setupUi(self)
+    """
+    """
+    def __init__(self,parent = None , name = None,fl = 0):
+        QDialog.__init__(self,parent)
+        self.setModal(True)
+        self.setupUi(self)
 
-  def on_buttonCancel_clicked(self):
-      QDialog.reject(self)
+    def on_buttonCancel_clicked(self):
+        QDialog.reject(self)
 
-  def on_buttonOk_clicked(self):
-      QDialog.accept(self)
+    def on_buttonOk_clicked(self):
+        QDialog.accept(self)
index 3025049b968861d254b5f5b57f62755408b3b687..4055c3a0d92b11ff3614cef198a1129b9702543c 100644 (file)
@@ -24,29 +24,28 @@ import types,os
 # Modules Eficas
 from Extensions.i18n import tr
 
-from .monWidgetRadioButton  import MonWidgetRadioButtonCommun 
-from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton 
+from .monWidgetRadioButton  import MonWidgetRadioButtonCommun
+from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton
 
 
 class MonWidget4a6RadioButton (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
         if type(monSimpDef.into) ==types.FunctionType : self.maListeDeValeur=monSimpDef.into()
         else : self.maListeDeValeur=monSimpDef.into
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=6
 
 
 class MonWidget4a6RadioButtonSD (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
         self.maListeDeValeur=node.item.getSdAvantDuBonType()
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=6
-
index 86f198ed90a7f294f033e972502e253c451a66a6..9cea1a416a45c001ad82b2a22891cf3ffc9da97b 100644 (file)
@@ -24,17 +24,16 @@ import types,os
 # Modules Eficas
 from Extensions.i18n import tr
 
-from .monWidgetRadioButton  import MonWidgetRadioButtonCommun 
-from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton 
+from .monWidgetRadioButton  import MonWidgetRadioButtonCommun
+from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton
 
 
 class MonWidget4a6RadioButtonSD (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
         self.maListeDeValeur=node.item.getSdAvantDuBonType()
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=6
-
index 1f656d4f2381b5f4ba1e7b3456c9f3de159d61cb..bb35952848b006e01fac25658dd5d414ff6831e6 100644 (file)
@@ -26,14 +26,14 @@ from Extensions.i18n import tr
 # Import des panels
 
 class MonWidgetBloc(Ui_WidgetBloc,Groupe):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
-      #print ("bloc : ",node.item.nom)
-      Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      #if self.editor.maConfiguration.afficheCommandesPliees ==True:  self.node.plieToutEtReaffiche()
-      self.parentQt.commandesLayout.insertWidget(-1,self,1)
+    """
+    """
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        #print ("bloc : ",node.item.nom)
+        Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        #if self.editor.maConfiguration.afficheCommandesPliees ==True:  self.node.plieToutEtReaffiche()
+        self.parentQt.commandesLayout.insertWidget(-1,self,1)
 
 
-  def afficheOptionnel(self):
-      return
+    def afficheOptionnel(self):
+        return
index 3e12bb6b8a8b0502afc3ba248a91ec0fd609258c..d464661f9918a7c977e51ea6be64dd6b2c3a47b7 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -29,7 +29,7 @@ import types,os
 from Extensions.i18n import tr
 
 from InterfaceQT4.feuille               import Feuille
-from desWidgetCB                        import Ui_WidgetCB 
+from desWidgetCB                        import Ui_WidgetCB
 from InterfaceQT4.politiquesValidation  import PolitiqueUnique
 from InterfaceQT4.qtSaisie              import SaisieValeur
 
@@ -39,7 +39,7 @@ from PyQt5.QtCore import Qt, QEvent
 
 class MonWidgetCBCommun (Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.determineChoix()
@@ -51,51 +51,51 @@ class MonWidgetCBCommun (Feuille):
         self.AAfficher=self.CBChoix
 
 
-  def setValeursApresBouton(self):
-      if self.objSimp.getValeur()==None : 
-         self.CBChoix.setCurrentIndex(-1)
-         self.CBChoix.lineEdit().setText(tr("Select"))
-         return
-      valeur=self.objSimp.getValeur()
-      if not(type(valeur) == str) : valeur=str(valeur)
-      self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
-      
-  def determineChoix(self):
-      listeChoix=[]
-      if self.maListeDeValeur == None : self.maListeDeValeur=[]
-      for choix in self.maListeDeValeur:
-          if not(type(choix) == str) : choix=str(choix)
-          listeChoix.append(choix)
-          self.CBChoix.addItem(choix)
-      self.CBChoix.setEditable(True)
-      monCompleteur=QCompleter(listeChoix,self) 
-      monCompleteur.setCompletionMode(QCompleter.PopupCompletion) 
-      self.CBChoix.setCompleter(monCompleteur)
-
-  def choixSaisi(self):
-      self.CBChoix.lineEdit().setStyleSheet(("\n"
+    def setValeursApresBouton(self):
+        if self.objSimp.getValeur()==None :
+            self.CBChoix.setCurrentIndex(-1)
+            self.CBChoix.lineEdit().setText(tr("Select"))
+            return
+        valeur=self.objSimp.getValeur()
+        if not(type(valeur) == str) : valeur=str(valeur)
+        self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
+
+    def determineChoix(self):
+        listeChoix=[]
+        if self.maListeDeValeur == None : self.maListeDeValeur=[]
+        for choix in self.maListeDeValeur:
+            if not(type(choix) == str) : choix=str(choix)
+            listeChoix.append(choix)
+            self.CBChoix.addItem(choix)
+        self.CBChoix.setEditable(True)
+        monCompleteur=QCompleter(listeChoix,self)
+        monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+        self.CBChoix.setCompleter(monCompleteur)
+
+    def choixSaisi(self):
+        self.CBChoix.lineEdit().setStyleSheet(("\n"
 "QLineEdit {\n"
 "     font : italic ;\n"
 "     background: rgb(235,235,235);\n"
 " }"))
-      valeur=str(self.CBChoix.currentText())
-      SaisieValeur.LEvaleurPressed(self,valeur)
-      self.reaffiche()
+        valeur=str(self.CBChoix.currentText())
+        SaisieValeur.LEvaleurPressed(self,valeur)
+        self.reaffiche()
 
-  def wheelEvent(self,  event):
-  # Sinon poum sur les fenetres trop longues
-  # lorsque la widget attrape le wheelevent
-    event.ignore()
+    def wheelEvent(self,  event):
+    # Sinon poum sur les fenetres trop longues
+    # lorsque la widget attrape le wheelevent
+        event.ignore()
 
 
 class MonWidgetCB (Ui_WidgetCB, MonWidgetCBCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      self.maListeDeValeur = monSimpDef.into
-      MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.maListeDeValeur = monSimpDef.into
+        MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
 class MonWidgetCBSD (Ui_WidgetCB,MonWidgetCBCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      self.maListeDeValeur = node.item.getSdAvantDuBonType()
-      MonWidgetCBCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.maListeDeValeur = node.item.getSdAvantDuBonType()
+        MonWidgetCBCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
index 8075451d98d7167521225fd1b686c5d06167797a..d8bcf98a8061733aeb75e05b6184f40de719c230 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -39,21 +39,19 @@ from PyQt5.QtCore import Qt
 from monWidgetCB            import MonWidgetCBCommun
 from monWidgetIntoSug       import GereAjoutDsPossible
 
-      
-class MonWidgetCBIntoSug (MonWidgetCBCommun, Ui_WidgetCBIntoSug,GereAjoutDsPossible):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      self.maListeDeValeur=monSimpDef.into
-      if node.item.hasIntoSug()          : self.maListeDeValeur  = node.item.getListePossibleAvecSug([])
-      if hasattr(node.item,'suggestion') : self.maListeDeValeur +=  node.item.suggestion
-      MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
-
-  def ajouteValeurPossible(self,valeur):
-      self.CBChoix.addItem(valeur)
-      # on ne sait pas si on a deja ajouté une valeur
-      try    : self.node.item.suggestion.append(valeur)
-      except : self.node.item.suggestion = (valeur,)
-      self.lineEditVal.setText('')
-      self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur));
-      
 
+class MonWidgetCBIntoSug (MonWidgetCBCommun, Ui_WidgetCBIntoSug,GereAjoutDsPossible):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.maListeDeValeur=monSimpDef.into
+        if node.item.hasIntoSug()          : self.maListeDeValeur  = node.item.getListePossibleAvecSug([])
+        if hasattr(node.item,'suggestion') : self.maListeDeValeur +=  node.item.suggestion
+        MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
+
+    def ajouteValeurPossible(self,valeur):
+        self.CBChoix.addItem(valeur)
+        # on ne sait pas si on a deja ajouté une valeur
+        try    : self.node.item.suggestion.append(valeur)
+        except : self.node.item.suggestion = (valeur,)
+        self.lineEditVal.setText('')
+        self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur));
index 929e7426601998b91fdcca33c8fb75dd6f2a17ad..c460851d64905a72a85b9855dfaa53bf63975e08 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -29,7 +29,7 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetCB           import Ui_WidgetCB 
+from desWidgetCB           import Ui_WidgetCB
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
@@ -39,7 +39,7 @@ from PyQt5.QtWidgets import QComboBox, QCompleter
 
 class MonWidgetCB (Ui_WidgetCB,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.determineChoix()
@@ -51,27 +51,27 @@ class MonWidgetCB (Ui_WidgetCB,Feuille):
         #print self.objSimp.isOblig()
 
 
-  def setValeursApresBouton(self):
-      if self.objSimp.getValeur()==None : 
-         self.CBChoix.setCurrentIndex(-1)
-         return
-      valeur=self.objSimp.getValeur()
-      if not(type(valeur) == str) : valeur=str(valeur)
-      self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
-      
-  def determineChoix(self):
-      self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
+    def setValeursApresBouton(self):
+        if self.objSimp.getValeur()==None :
+            self.CBChoix.setCurrentIndex(-1)
+            return
+        valeur=self.objSimp.getValeur()
+        if not(type(valeur) == str) : valeur=str(valeur)
+        self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
 
-      for choix in self.monSimpDef.into:
-          if not(type(choix) == str) : choix=str(choix)
-          self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
-          self.CBChoix.addItem(choix)
-      self.CBChoix.setEditable(True)
-      monCompleteur=QCompleter(listeChoix,self) 
-      monCompleteur.setCompletionMode(QCompleter.PopupCompletion) 
-      self.CBChoix.setCompleter(monCompleteur)
+    def determineChoix(self):
+        self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
+
+        for choix in self.monSimpDef.into:
+            if not(type(choix) == str) : choix=str(choix)
+            self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
+            self.CBChoix.addItem(choix)
+        self.CBChoix.setEditable(True)
+        monCompleteur=QCompleter(listeChoix,self)
+        monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+        self.CBChoix.setCompleter(monCompleteur)
 
-  def choixSaisi(self):
-      valeur=str(self.CBChoix.currentText())
-      SaisieValeur.LEvaleurPressed(self,valeur)
-      self.reaffiche()
+    def choixSaisi(self):
+        valeur=str(self.CBChoix.currentText())
+        SaisieValeur.LEvaleurPressed(self,valeur)
+        self.reaffiche()
index 99faa62897d73f7ae0a1d17ba04eaaed3961eab1..a9c0b16f6cc7a13ceab459250cbe95307d4a1c46 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Eficas
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types
@@ -37,274 +37,272 @@ from PyQt5.QtCore import Qt
 
 
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetCommande(Ui_WidgetCommande,Groupe):
-  """
-  """
-  def __init__(self,node,editor,etape):
-
-      self.listeAffichageWidget=[]
-      self.inhibe=0
-      self.ensure=0
-      editor.inhibeSplitter=1
-      Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self)
-      spacerItem = QSpacerItem(21, 500, QSizePolicy.Expanding, QSizePolicy.Expanding)
-      self.verticalLayoutCommande.addItem(spacerItem)
-      editor.inhibeSplitter=0
-
-      # Gestion du nom de L OPER si il est nomme 
-      if   not(hasattr(etape.definition,'sd_prod')) or (etape.definition.sd_prod==None): self.LENom.close()
-      elif (hasattr(etape.definition,'sd_prod') and type(etape.definition.sd_prod)== types.FunctionType):self.LENom.close()
-      elif (hasattr(etape, 'sdnom')) and etape.sdnom != "sansnom" and etape.sdnom != None: 
-         self.LENom.setText(etape.sdnom)
-      else : 
-         self.LENom.setText("")
-      if hasattr(self,'LENom'): self.LENom.returnPressed.connect(self.nomChange)
-      self.racine=self.node.tree.racine
-      if self.node.item.getIconName() == "ast-red-square" : self.LENom.setDisabled(True)
-
-      # Gestion de la doc de l objet
-      if node.item.getFr() != "" : 
-         self.labelDoc.setText(node.item.getFr())
-         nouvelleSize=self.frameAffichage.height()+60
-         self.frameAffichage.setMinimumHeight(nouvelleSize)
-         self.frameAffichage.resize(self.frameAffichage.width(),nouvelleSize)
-      else : self.labelDoc.close()
-      
-   
-      # Gestion du nom de l etape
-      maPolice= QFont("Times", 10,)
-      self.setFont(maPolice)
-      self.labelNomCommande.setText(tr(self.obj.nom))
-
-
-      # Gestion du Frame d affichage des autres commandes
-      if self.editor.maConfiguration.closeAutreCommande == True  : self.closeAutreCommande()
-      else :
-         self.bCatalogue.clicked.connect(self.afficheCatalogue)
-         self.bAvant.clicked.connect(self.afficheAvant)
-         self.bApres.clicked.connect(self.afficheApres)
-       
-      if self.editor.maConfiguration.closeFrameRechercheCommande==True  : 
-         self.frameAffichage.close()
-         self.closeAutreCommande()
-
-
-      self.setAcceptDrops(True)
-      self.etablitOrdre()
-
-      if self.editor.maConfiguration.enleverPoubellePourCommande  : 
-         self.RBPoubelle.close() # JDC Fige
-
-      if self.editor.maConfiguration.pasDeMCOptionnels  : 
-         return                  # Pas de MC Optionnels pour Carmel
-
-      from .monWidgetOptionnel import MonWidgetOptionnel
-      if self.editor.widgetOptionnel!= None : 
-         self.monOptionnel=self.editor.widgetOptionnel
-      else :
-         self.editor.inhibeSplitter=1
-         self.monOptionnel=MonWidgetOptionnel(self.editor)
-         self.editor.widgetOptionnel=self.monOptionnel
-         self.editor.splitter.addWidget(self.monOptionnel)
-         self.editor.ajoutOptionnel()
-         self.editor.inhibeSplitter=0
-         self.monOptionnel=self.editor.widgetOptionnel
-      self.afficheOptionnel()
-
-      #print "fin init de widget Commande"
-      
-
-  def closeAutreCommande(self):
-      self.bCatalogue.close()
-      self.bAvant.close()
-      self.bApres.close()
-
-  def donnePremier(self):
-      #print "dans donnePremier"
-      QApplication.processEvents()
-      if self.listeAffichageWidget != [] :
-         self.listeAffichageWidget[0].setFocus(7)
-      QApplication.processEvents()
-      #print self.focusWidget()
-
-
-  def focusNextPrevChild(self, next):
-      # on s assure que ce n est pas un chgt de fenetre
-      #print "je passe dans focusNextPrevChild"
-      if self.editor.fenetreCentraleAffichee != self : return True
-      f = self.focusWidget()
-      if f not in self.listeAffichageWidget :
-         i=0
-         while not hasattr (f,'AAfficher') :
-           if f==None :i=-1; break
-           f = f.parentWidget()
-         if hasattr(f,'AAfficher') : f=f.AAfficher
-         if i != -1 : i=self.listeAffichageWidget.index(f)
-      else :i=self.listeAffichageWidget.index(f) 
-      if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe: 
-         try :
-           self.listeAffichageWidget[1].setFocus(7)
-           w=self.focusWidget()
-           self.inhibe=1
-           w.focusPreviousChild()
-           self.inhibe=0
-           return True
-         except :
-           pass
-           #print self.listeAffichageWidget
-           #print "souci ds focusNextPrevChild"
-      if i==0 and next==False and not self.inhibe: 
-         if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
-            self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
-         self.listeAffichageWidget[-2].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-      if i==0 and next==True and not self.inhibe:
-         self.listeAffichageWidget[0].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-      if i>0 and next==False and not self.inhibe:
-         if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
-           self.listeAffichageWidget[i-1].setFocus(7)
-           return True
-      return QWidget.focusNextPrevChild(self, next)
-
-  def etablitOrdre(self):
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-      # si on boucle on perd l'ordre
-  def  afficheSuivant(self,f):
-      #print ('ds afficheSuivant')
-      try :
-        i=self.listeAffichageWidget.index(f) 
-        next=i+1
-      except :
-        next=1
-      if (next==len(self.listeAffichageWidget) ): next =0
-      #self.f=next
-      #QTimer.singleShot(1, self.rendVisible)
-      try :
-        self.listeAffichageWidget[next].setFocus(7)
-      except :
-        pass
-
-  def nomChange(self):
-      nom = str(self.LENom.text())
-      nom = nom.strip()
-      if nom == '' : return                  # si pas de nom, on ressort sans rien faire
-      test,mess = self.node.item.nommeSd(nom)
-      self.editor.afficheCommentaire(mess)
-
-      #Notation scientifique
-      if test :
-        from .politiquesValidation import Validation
-        validation=Validation(self.node,self.editor)
-        validation.ajoutDsDictReelEtape()
-
-  def afficheOptionnel(self):
-      # N a pas de parentQt. doit donc etre redefini
-      if self.editor.maConfiguration.closeOptionnel : self.editor.fermeOptionnel()
-      liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
-      #print "dans afficheOptionnel", self.monOptionnel
-      # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
-      #if self.monOptionnel == None : return
-      self.monOptionnel.parentCommande=self
-      self.monOptionnel.titre(self.obj.nom)
-      self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
-      
-
-  def focusInEvent(self,event):
-      #print "je mets a jour dans focusInEvent de monWidget Commande "
-      self.afficheOptionnel()
-
-
-  def reaffiche(self,nodeAVoir=None):
-      # Attention delicat. les appels de fonctions ne semblent pas pouvoir etre supprimes!
-      self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition()
-      self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition()
-      self.inhibeExpand=True
-      self.node.affichePanneau()
-      #QTimer.singleShot(1, self.recentre)
-      if nodeAVoir != None and nodeAVoir!=0:
-        self.f=nodeAVoir.fenetre
-        if self.f==None : 
-             newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object)
-             self.f = newNode.fenetre 
-        if self.f != None and self.f.isVisible() : self.inhibeExpand=False; return
-        if self.f != None : self.rendVisible()
+    """
+    """
+    def __init__(self,node,editor,etape):
+
+        self.listeAffichageWidget=[]
+        self.inhibe=0
+        self.ensure=0
+        editor.inhibeSplitter=1
+        Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self)
+        spacerItem = QSpacerItem(21, 500, QSizePolicy.Expanding, QSizePolicy.Expanding)
+        self.verticalLayoutCommande.addItem(spacerItem)
+        editor.inhibeSplitter=0
+
+        # Gestion du nom de L OPER si il est nomme
+        if   not(hasattr(etape.definition,'sd_prod')) or (etape.definition.sd_prod==None): self.LENom.close()
+        elif (hasattr(etape.definition,'sd_prod') and type(etape.definition.sd_prod)== types.FunctionType):self.LENom.close()
+        elif (hasattr(etape, 'sdnom')) and etape.sdnom != "sansnom" and etape.sdnom != None:
+            self.LENom.setText(etape.sdnom)
+        else :
+            self.LENom.setText("")
+        if hasattr(self,'LENom'): self.LENom.returnPressed.connect(self.nomChange)
+        self.racine=self.node.tree.racine
+        if self.node.item.getIconName() == "ast-red-square" : self.LENom.setDisabled(True)
+
+        # Gestion de la doc de l objet
+        if node.item.getFr() != "" :
+            self.labelDoc.setText(node.item.getFr())
+            nouvelleSize=self.frameAffichage.height()+60
+            self.frameAffichage.setMinimumHeight(nouvelleSize)
+            self.frameAffichage.resize(self.frameAffichage.width(),nouvelleSize)
+        else : self.labelDoc.close()
+
+
+        # Gestion du nom de l etape
+        maPolice= QFont("Times", 10,)
+        self.setFont(maPolice)
+        self.labelNomCommande.setText(tr(self.obj.nom))
+
+
+        # Gestion du Frame d affichage des autres commandes
+        if self.editor.maConfiguration.closeAutreCommande == True  : self.closeAutreCommande()
+        else :
+            self.bCatalogue.clicked.connect(self.afficheCatalogue)
+            self.bAvant.clicked.connect(self.afficheAvant)
+            self.bApres.clicked.connect(self.afficheApres)
+
+        if self.editor.maConfiguration.closeFrameRechercheCommande==True  :
+            self.frameAffichage.close()
+            self.closeAutreCommande()
+
+
+        self.setAcceptDrops(True)
+        self.etablitOrdre()
+
+        if self.editor.maConfiguration.enleverPoubellePourCommande  :
+            self.RBPoubelle.close() # JDC Fige
+
+        if self.editor.maConfiguration.pasDeMCOptionnels  :
+            return                  # Pas de MC Optionnels pour Carmel
+
+        from .monWidgetOptionnel import MonWidgetOptionnel
+        if self.editor.widgetOptionnel!= None :
+            self.monOptionnel=self.editor.widgetOptionnel
+        else :
+            self.editor.inhibeSplitter=1
+            self.monOptionnel=MonWidgetOptionnel(self.editor)
+            self.editor.widgetOptionnel=self.monOptionnel
+            self.editor.splitter.addWidget(self.monOptionnel)
+            self.editor.ajoutOptionnel()
+            self.editor.inhibeSplitter=0
+            self.monOptionnel=self.editor.widgetOptionnel
+        self.afficheOptionnel()
+
+        #print "fin init de widget Commande"
+
+
+    def closeAutreCommande(self):
+        self.bCatalogue.close()
+        self.bAvant.close()
+        self.bApres.close()
+
+    def donnePremier(self):
+        #print "dans donnePremier"
+        QApplication.processEvents()
+        if self.listeAffichageWidget != [] :
+            self.listeAffichageWidget[0].setFocus(7)
+        QApplication.processEvents()
+        #print self.focusWidget()
+
+
+    def focusNextPrevChild(self, next):
+        # on s assure que ce n est pas un chgt de fenetre
+        #print "je passe dans focusNextPrevChild"
+        if self.editor.fenetreCentraleAffichee != self : return True
+        f = self.focusWidget()
+        if f not in self.listeAffichageWidget :
+            i=0
+            while not hasattr (f,'AAfficher') :
+                if f==None :i=-1; break
+                f = f.parentWidget()
+            if hasattr(f,'AAfficher') : f=f.AAfficher
+            if i != -1 : i=self.listeAffichageWidget.index(f)
+        else :i=self.listeAffichageWidget.index(f)
+        if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe:
+            try :
+                self.listeAffichageWidget[1].setFocus(7)
+                w=self.focusWidget()
+                self.inhibe=1
+                w.focusPreviousChild()
+                self.inhibe=0
+                return True
+            except :
+                pass
+                #print self.listeAffichageWidget
+                #print "souci ds focusNextPrevChild"
+        if i==0 and next==False and not self.inhibe:
+            if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
+                self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
+            self.listeAffichageWidget[-2].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+        if i==0 and next==True and not self.inhibe:
+            self.listeAffichageWidget[0].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+        if i>0 and next==False and not self.inhibe:
+            if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
+                self.listeAffichageWidget[i-1].setFocus(7)
+                return True
+        return QWidget.focusNextPrevChild(self, next)
+
+    def etablitOrdre(self):
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+        # si on boucle on perd l'ordre
+
+    def  afficheSuivant(self,f):
+        #print ('ds afficheSuivant')
+        try :
+            i=self.listeAffichageWidget.index(f)
+            next=i+1
+        except :
+            next=1
+        if (next==len(self.listeAffichageWidget) ): next =0
+        #self.f=next
+        #QTimer.singleShot(1, self.rendVisible)
+        try :
+            self.listeAffichageWidget[next].setFocus(7)
+        except :
+            pass
+
+    def nomChange(self):
+        nom = str(self.LENom.text())
+        nom = nom.strip()
+        if nom == '' : return                  # si pas de nom, on ressort sans rien faire
+        test,mess = self.node.item.nommeSd(nom)
+        self.editor.afficheCommentaire(mess)
+
+        #Notation scientifique
+        if test :
+            from .politiquesValidation import Validation
+            validation=Validation(self.node,self.editor)
+            validation.ajoutDsDictReelEtape()
+
+    def afficheOptionnel(self):
+        # N a pas de parentQt. doit donc etre redefini
+        if self.editor.maConfiguration.closeOptionnel : self.editor.fermeOptionnel()
+        liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
+        #print "dans afficheOptionnel", self.monOptionnel
+        # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
+        #if self.monOptionnel == None : return
+        self.monOptionnel.parentCommande=self
+        self.monOptionnel.titre(self.obj.nom)
+        self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
+
+
+    def focusInEvent(self,event):
+        #print "je mets a jour dans focusInEvent de monWidget Commande "
+        self.afficheOptionnel()
+
+
+    def reaffiche(self,nodeAVoir=None):
+        # Attention delicat. les appels de fonctions ne semblent pas pouvoir etre supprimes!
+        self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition()
+        self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition()
+        self.inhibeExpand=True
+        self.node.affichePanneau()
+        #QTimer.singleShot(1, self.recentre)
+        if nodeAVoir != None and nodeAVoir!=0:
+            self.f=nodeAVoir.fenetre
+            if self.f==None :
+                newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object)
+                self.f = newNode.fenetre
+            if self.f != None and self.f.isVisible() : self.inhibeExpand=False; return
+            if self.f != None : self.rendVisible()
+            else : self.recentre()
         else : self.recentre()
-      else : self.recentre()
-      self.inhibeExpand=False
-
-
-
-  def recentre(self):
-      QApplication.processEvents()
-      s=self.editor.fenetreCentraleAffichee.scrollAreaCommandes
-      s.horizontalScrollBar().setSliderPosition(self.avantH)
-      s.verticalScrollBar().setSliderPosition(self.avantV)
-
-  def rendVisible(self):
-      QApplication.processEvents()
-      self.f.setFocus(7)
-      self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f)
-
-  def afficheCatalogue(self):
-      if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
-      self.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.racine.select()
-
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
-  def setValide(self):
-      if not(hasattr (self,'RBValide')) : return
-      icon = QIcon()
-      if self.node.item.object.isValid() : icon=QIcon(self.repIcon+"/ast-green-ball.png")
-      else :                               icon=QIcon(self.repIcon+"/ast-red-ball.png")
-      nomIcone = self.node.item.getIconName()
-      if nomIcone == "ast-yellow-square" : icon=QIcon(self.repIcon+"/ast-yel-ball.png")
-      if nomIcone == "ast-red-square"    : self.LENom.setDisabled(True)
-
-      self.LENom.setDisabled(False)
-      self.RBValide.setIcon(icon)
-
-
-  def propageChange(self,typeChange,donneLeFocus):
-      aReecrire=self.propageChangeEnfant(self.node.item.object,typeChange)
-      if aReecrire : self.node.affichePanneau()
-      if hasattr(donneLeFocus.node.fenetre, 'selectionneDernier') :
-         QApplication.processEvents()
-         self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(donneLeFocus.node.fenetre)
-         donneLeFocus.node.fenetre.selectionneDernier()
-
-  def propageChangeEnfant(self,mc, typeChange):
-      for enfant in mc.mcListe:
-          if enfant.nature == 'MCSIMP' :
-             if enfant.waitUserAssd():
-                if enfant.definition.type[0] == typeChange: return True
-          else :
-            if enfant.nature == 'MCList' : enfant=enfant[0]
-            if self.propageChangeEnfant(enfant, typeChange) : return True
-      return False
-             
-             
+        self.inhibeExpand=False
+
+
+
+    def recentre(self):
+        QApplication.processEvents()
+        s=self.editor.fenetreCentraleAffichee.scrollAreaCommandes
+        s.horizontalScrollBar().setSliderPosition(self.avantH)
+        s.verticalScrollBar().setSliderPosition(self.avantV)
+
+    def rendVisible(self):
+        QApplication.processEvents()
+        self.f.setFocus(7)
+        self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f)
+
+    def afficheCatalogue(self):
+        if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
+        self.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.racine.select()
+
+    def afficheApres(self):
+        self.node.selectApres()
+
+    def afficheAvant(self):
+        self.node.selectAvant()
+
+    def setValide(self):
+        if not(hasattr (self,'RBValide')) : return
+        icon = QIcon()
+        if self.node.item.object.isValid() : icon=QIcon(self.repIcon+"/ast-green-ball.png")
+        else :                               icon=QIcon(self.repIcon+"/ast-red-ball.png")
+        nomIcone = self.node.item.getIconName()
+        if nomIcone == "ast-yellow-square" : icon=QIcon(self.repIcon+"/ast-yel-ball.png")
+        if nomIcone == "ast-red-square"    : self.LENom.setDisabled(True)
+
+        self.LENom.setDisabled(False)
+        self.RBValide.setIcon(icon)
+
+
+    def propageChange(self,typeChange,donneLeFocus):
+        aReecrire=self.propageChangeEnfant(self.node.item.object,typeChange)
+        if aReecrire : self.node.affichePanneau()
+        if hasattr(donneLeFocus.node.fenetre, 'selectionneDernier') :
+            QApplication.processEvents()
+            self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(donneLeFocus.node.fenetre)
+            donneLeFocus.node.fenetre.selectionneDernier()
+
+    def propageChangeEnfant(self,mc, typeChange):
+        for enfant in mc.mcListe:
+            if enfant.nature == 'MCSIMP' :
+                if enfant.waitUserAssd():
+                    if enfant.definition.type[0] == typeChange: return True
+            else :
+                if enfant.nature == 'MCList' : enfant=enfant[0]
+                if self.propageChangeEnfant(enfant, typeChange) : return True
+        return False
index c03a17c1ed5fb7f75e339077460b1e1861bf920e..da99150cdfe379c12a7db3de51aed8d7286201d7 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Eficas
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 import types, os
 import traceback
@@ -34,117 +34,117 @@ class MonWidgetCommandeDeplie1Niveau(MonWidgetCommande):
 # il faut donc surcharger un certain nb de fonction ici pour eux
 
 
-  def __init__(self,node,editor,etape):
-      #print ("debut de ---------------------- init de MonWidgetCommandeDeplie1Niveau ",node.item.nom)
-      MonWidgetCommande.__init__(self,node,editor,etape)
-      self.node.plieToutEtReaffiche=self.plieToutEtReaffiche
-      spacerItem = QSpacerItem(21, 600, QSizePolicy.Expanding, QSizePolicy.Expanding)
-      self.verticalLayoutCommande.addItem(spacerItem)
-
-  def afficheMots(self):
-      # Attention
-      # Attention --> cette methode surcharge les methodes des Nodes Fils
-      # Attention
-      #print ("debut de ---------------------- ds afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
-      #traceback.print_stack()
-      repIcon=self.editor.appliEficas.repIcon
-      fichier=os.path.join(repIcon, 'deleteRondVide.png')
-      icon = QIcon(fichier)
-      for node in self.node.children:
-
-           node.plie=True
-           node.setPlieChildren()
-           if node.appartientAUnNoeudPlie==True : continue
-
-           node.plieToutEtReaffiche   = self.plieToutEtReaffiche
-           node.deplieToutEtReaffiche = self.deplieToutEtReaffiche
-           node.affichePanneau        = self.affichePanneau
-           node.getPanel              = self.getPanel
-
-           widget=node.getPanelGroupe(self,self.maCommande)
-           self.listeFocus.append(node.fenetre)
-
-           try :
-            node.fenetre.RBDeplie.setCheckable(False)
-            node.fenetre.RBDeplie.setEnabled(False)
-            node.fenetre.RBDeplie.setIcon(icon)
-           except : pass
-
-           if node.item.object.isMCList() :
-              node.setDeplie              = self.setDepliePourMCList
-
-              for c in node.children :
-                  c.setDeplie           = self.setDepliePourNode
-                  c.plieToutEtReaffiche = self.plieToutEtReaffiche
-                  c.deplieToutEtReaffiche = self.deplieToutEtReaffiche
-                  c.getPanel              = self.getPanel
-                  c.affichePanneau      = self.affichePanneau
-                  try :        
-                    c.fenetre.RBDeplie.setCheckable(False)
-                    c.fenetre.RBDeplie.setEnabled(False)
-                    c.fenetre.RBDeplie.setIcon(icon)
-                  except :
-                    pass
-           else :
-              node.setDeplie=self.setDepliePourNode
-
-      #print ("fin ------------------------ afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
-
-  def afficheSuivant(self,aAfficher):
-      fenetre=self.node.tree.itemCourant.fenetre
-      fenetre.afficheSuivant(aAfficher)
-
-  def setDepliePourNode(self):
-      noeudCourant=self.node.tree.itemCourant
-      noeudCourant.setDeplieChildren()
-      if self.editor.fenetreCentraleAffichee == noeudCourant.fenetre : return
-      noeudCourant.afficheCeNiveau()
-      pass
+    def __init__(self,node,editor,etape):
+        #print ("debut de ---------------------- init de MonWidgetCommandeDeplie1Niveau ",node.item.nom)
+        MonWidgetCommande.__init__(self,node,editor,etape)
+        self.node.plieToutEtReaffiche=self.plieToutEtReaffiche
+        spacerItem = QSpacerItem(21, 600, QSizePolicy.Expanding, QSizePolicy.Expanding)
+        self.verticalLayoutCommande.addItem(spacerItem)
+
+    def afficheMots(self):
+        # Attention
+        # Attention --> cette methode surcharge les methodes des Nodes Fils
+        # Attention
+        #print ("debut de ---------------------- ds afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
+        #traceback.print_stack()
+        repIcon=self.editor.appliEficas.repIcon
+        fichier=os.path.join(repIcon, 'deleteRondVide.png')
+        icon = QIcon(fichier)
+        for node in self.node.children:
+
+            node.plie=True
+            node.setPlieChildren()
+            if node.appartientAUnNoeudPlie==True : continue
+
+            node.plieToutEtReaffiche   = self.plieToutEtReaffiche
+            node.deplieToutEtReaffiche = self.deplieToutEtReaffiche
+            node.affichePanneau        = self.affichePanneau
+            node.getPanel              = self.getPanel
+
+            widget=node.getPanelGroupe(self,self.maCommande)
+            self.listeFocus.append(node.fenetre)
+
+            try :
+                node.fenetre.RBDeplie.setCheckable(False)
+                node.fenetre.RBDeplie.setEnabled(False)
+                node.fenetre.RBDeplie.setIcon(icon)
+            except : pass
+
+            if node.item.object.isMCList() :
+                node.setDeplie              = self.setDepliePourMCList
+
+                for c in node.children :
+                    c.setDeplie           = self.setDepliePourNode
+                    c.plieToutEtReaffiche = self.plieToutEtReaffiche
+                    c.deplieToutEtReaffiche = self.deplieToutEtReaffiche
+                    c.getPanel              = self.getPanel
+                    c.affichePanneau      = self.affichePanneau
+                    try :
+                        c.fenetre.RBDeplie.setCheckable(False)
+                        c.fenetre.RBDeplie.setEnabled(False)
+                        c.fenetre.RBDeplie.setIcon(icon)
+                    except :
+                        pass
+            else :
+                node.setDeplie=self.setDepliePourNode
+
+        #print ("fin ------------------------ afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
+
+    def afficheSuivant(self,aAfficher):
+        fenetre=self.node.tree.itemCourant.fenetre
+        fenetre.afficheSuivant(aAfficher)
+
+    def setDepliePourNode(self):
+        noeudCourant=self.node.tree.itemCourant
+        noeudCourant.setDeplieChildren()
+        if self.editor.fenetreCentraleAffichee == noeudCourant.fenetre : return
+        noeudCourant.afficheCeNiveau()
+        pass
 
 
 # -------------------------------------------- Methodes qui surchargent les noeuds fils
 
-  def setDepliePourMCList(self):
-      #print ('je surcharge setDeplie pour MCList')
-      pass
+    def setDepliePourMCList(self):
+        #print ('je surcharge setDeplie pour MCList')
+        pass
 
-  def setPlieChildren(self):
-      #print ('je surcharge setPlieChildren')
-      pass
+    def setPlieChildren(self):
+        #print ('je surcharge setPlieChildren')
+        pass
 
-  def setDeplieChildren(self):
-      #print ('je surcharge setDeplieChildren')
-      pass
+    def setDeplieChildren(self):
+        #print ('je surcharge setDeplieChildren')
+        pass
 
-  def plieToutEtReaffiche(self):
-      #print ('je surcharge plieToutEtReaffiche', self.node.item.nom)
-      pass
+    def plieToutEtReaffiche(self):
+        #print ('je surcharge plieToutEtReaffiche', self.node.item.nom)
+        pass
 
-  def deplieToutEtReaffiche(self):
-      #print ('je surcharge deplieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
-      pass
+    def deplieToutEtReaffiche(self):
+        #print ('je surcharge deplieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
+        pass
 
-  def plieToutEtReafficheSaufItem(self):
-      #print ('je surcharge plieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
-      pass
+    def plieToutEtReafficheSaufItem(self):
+        #print ('je surcharge plieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
+        pass
 
-  def affichePanneau(self):
-      #print ('je surcharge affichePanneau', self.node.tree.itemCourant.item.getLabelText())
-      node=self.node.tree.itemCourant
-      while ( not (hasattr(node,'fenetreIhm')) or node.treeParent.fenetreIhm != 'deplie1Niveau') : 
+    def affichePanneau(self):
+        #print ('je surcharge affichePanneau', self.node.tree.itemCourant.item.getLabelText())
+        node=self.node.tree.itemCourant
+        while ( not (hasattr(node,'fenetreIhm')) or node.treeParent.fenetreIhm != 'deplie1Niveau') :
             node=node.treeParent
-      self.node.tree.setCurrentItem(node)
-          
-      item=node.item
-      if item.getLabelText()[0] == self.editor.fenetreCentraleAffichee.labelNomCommande.text():
-         return
-      node.setDeplieChildren()
-      node.afficheCeNiveau()
-      self.editor.fenetreCentraleAffichee.labelNomCommande.setText(item.getLabelText()[0])
-      self.editor.fenetreCentraleAffichee.labelDoc.setText(item.getFr())
+        self.node.tree.setCurrentItem(node)
 
+        item=node.item
+        if item.getLabelText()[0] == self.editor.fenetreCentraleAffichee.labelNomCommande.text():
+            return
+        node.setDeplieChildren()
+        node.afficheCeNiveau()
+        self.editor.fenetreCentraleAffichee.labelNomCommande.setText(item.getLabelText()[0])
+        self.editor.fenetreCentraleAffichee.labelDoc.setText(item.getFr())
 
 
-  def getPanel (self):
-      #print ('surcharge ds getPanel')
-      pass
+
+    def getPanel (self):
+        #print ('surcharge ds getPanel')
+        pass
index 8ff4e31780fd489cb4d0028fd03e8ca765e88590..2ac6f90bd17510e3585b84445f01d13be7c03b67 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from PyQt5.QtWidgets import QWidget
@@ -30,68 +30,67 @@ from PyQt5.QtCore    import Qt
 from desWidgetCommentaire import Ui_WidgetCommentaire
 from .gereIcones import FacultatifOuOptionnel
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetCommentaire(QWidget,Ui_WidgetCommentaire,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,commentaire):
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.setupUi(self)
-      self.editor=editor
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-      self.setIconePoubelle()
-      self.remplitTexte()
-      self.monOptionnel=None
-
-      self.commentaireTE.textChanged.connect(self.TexteCommentaireEntre)
-      if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
-      else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
-      if self.editor.code in ['Adao','MAP','ADAO'] :
-           self.bAvant.close()
-           self.bApres.close()
-      else :
-           self.bAvant.clicked.connect(self.afficheAvant)
-           self.bApres.clicked.connect(self.afficheApres)
-      self.editor.fermeOptionnel()
-
-
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
-       
-  def afficheCatalogue(self):
-      self.node.tree.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.node.tree.racine.select()
-
-  def remplitTexte(self):
-      texte=self.node.item.getValeur()
-      self.commentaireTE.setText(texte)
-      if self.editor.code == "CARMELCND" and texte[0:16]=="Cree - fichier :" :
-         self.commentaireTE.setReadOnly(True)
-         self.commentaireTE.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-         self.commentaireTE.setToolTip(tr("Valeur non modifiable"))
-      else :
-         self.commentaireTE.setReadOnly(False)
-
-  def donnePremier(self):
-      self.commentaireTE.setFocus(7)
-
-
-  def TexteCommentaireEntre(self):
-      texte=str(self.commentaireTE.toPlainText())
-      self.editor.initModif()
-      self.node.item.setValeur(texte)
-      self.node.updateNodeTexte()
+    """
+    """
+    def __init__(self,node,editor,commentaire):
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.setupUi(self)
+        self.editor=editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.setIconePoubelle()
+        self.remplitTexte()
+        self.monOptionnel=None
+
+        self.commentaireTE.textChanged.connect(self.TexteCommentaireEntre)
+        if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
+        else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
+        if self.editor.code in ['Adao','MAP','ADAO'] :
+            self.bAvant.close()
+            self.bApres.close()
+        else :
+            self.bAvant.clicked.connect(self.afficheAvant)
+            self.bApres.clicked.connect(self.afficheApres)
+        self.editor.fermeOptionnel()
+
+
+    def afficheApres(self):
+        self.node.selectApres()
+
+    def afficheAvant(self):
+        self.node.selectAvant()
+
+
+    def afficheCatalogue(self):
+        self.node.tree.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.node.tree.racine.select()
+
+    def remplitTexte(self):
+        texte=self.node.item.getValeur()
+        self.commentaireTE.setText(texte)
+        if self.editor.code == "CARMELCND" and texte[0:16]=="Cree - fichier :" :
+            self.commentaireTE.setReadOnly(True)
+            self.commentaireTE.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.commentaireTE.setToolTip(tr("Valeur non modifiable"))
+        else :
+            self.commentaireTE.setReadOnly(False)
+
+    def donnePremier(self):
+        self.commentaireTE.setFocus(7)
+
 
+    def TexteCommentaireEntre(self):
+        texte=str(self.commentaireTE.toPlainText())
+        self.editor.initModif()
+        self.node.item.setValeur(texte)
+        self.node.updateNodeTexte()
index d53025c1ce3e8f0f8f357a947fed3f713a6e0da4..1e9037937613fc7102c97207193de5df3d5b862e 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 import types,os,re
@@ -35,46 +35,46 @@ from desWidgetCreeParam import Ui_desWidgetCreeParam
 
 
 class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
-  """
-  """
-  def __init__(self,editor, name = None,fl = 0):
-       self.editor=editor
-       self.editor.afficheInfos("")
-       QDialog.__init__(self,editor)
-       self.setupUi(self)
-       self.connecterSignaux()
-       self.dejaExistant=0
-       self.listeTousParam=self.editor.jdc.params
-       self.dictListe={}
-       self.initToutesVal()
-
-  def connecterSignauxQT4(self) :
+    """
+    """
+    def __init__(self,editor, name = None,fl = 0):
+        self.editor=editor
+        self.editor.afficheInfos("")
+        QDialog.__init__(self,editor)
+        self.setupUi(self)
+        self.connecterSignaux()
+        self.dejaExistant=0
+        self.listeTousParam=self.editor.jdc.params
+        self.dictListe={}
+        self.initToutesVal()
+
+    def connecterSignauxQT4(self) :
         self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.lineEditValReturnPressed)
         self.connect(self.lineEditNom,SIGNAL("returnPressed()"),self.lineEditNomReturnPressed)
 
-  def connecterSignaux(self) :
+    def connecterSignaux(self) :
         self.lineEditVal.returnPressed.connect(self.lineEditValReturnPressed)
         self.lineEditNom.returnPressed.connect(self.lineEditNomReturnPressed)
         self.LBParam.itemDoubleClicked.connect(self.paramClicked)
 
-  def paramClicked(self,item):
-        if self.editor.nodeEnCours == None : 
+    def paramClicked(self,item):
+        if self.editor.nodeEnCours == None :
             QMessageBox.warning( self, tr("Pas de Mot-Clef"),tr("Attention! selectionnez un mot-clef"))
             return
         param= self.dictListe[item.text()]
         self.editor.nodeEnCours.lineEditVal.setText(param)
         self.editor.nodeEnCours.LEvaleurPressed()
-       
 
-  def creeParametre(self):
+
+    def creeParametre(self):
         nom=str(self.lineEditNom.text())
         val=str(self.lineEditVal.text())
         if val == "" or None : return
         if nom == "" or None : return
-        if len(self.editor.tree.selectedItems()) == 0 : 
-           itemAvant=self.editor.tree.racine 
-        else :                                     
-           itemAvant=self.editor.tree.selectedItems()[0]
+        if len(self.editor.tree.selectedItems()) == 0 :
+            itemAvant=self.editor.tree.racine
+        else :
+            itemAvant=self.editor.tree.selectedItems()[0]
         param=itemAvant.addParameters(True)
         param.item.setNom(nom)
         #PN self.val permet d entrer du texte
@@ -89,62 +89,62 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
 
 
 
-  def lineEditValReturnPressed(self):
+    def lineEditValReturnPressed(self):
         qtVal=self.lineEditVal.text()
         valString=str(self.lineEditVal.text())
         self.val=""
         contexte={}
         exec("from math import *", contexte)
         jdc=self.editor.jdc
-        if jdc == None : 
-          self.editor.afficheInfos(tr(u"La Creation de parametre n est possible que dans un jeu de donnees"),Qt.red)
-          return
+        if jdc == None :
+            self.editor.afficheInfos(tr(u"La Creation de parametre n est possible que dans un jeu de donnees"),Qt.red)
+            return
 
         for p in jdc.params :
-           try:
-              tp=p.nom+'='+str(repr(p.valeur))
-              exec(tp, contexte)
-           except :
-              pass
+            try:
+                tp=p.nom+'='+str(repr(p.valeur))
+                exec(tp, contexte)
+            except :
+                pass
         monTexte="monParam="+valString
         try :
-          exec(monTexte, contexte)
-          self.val=valString
+            exec(monTexte, contexte)
+            self.val=valString
         except :
-          try :
-            monTexte="monParam='"+valString+"'"
-            self.val="'"+valString+"'"
-          except :
-            self.editor.afficheInfos(tr("Valeur incorrecte"),Qt.red)
+            try :
+                monTexte="monParam='"+valString+"'"
+                self.val="'"+valString+"'"
+            except :
+                self.editor.afficheInfos(tr("Valeur incorrecte"),Qt.red)
         if self.lineEditNom.text()!="" and self.dejaExistant==False : self.creeParametre()
 
 
-  def lineEditNomReturnPressed(self):
+    def lineEditNomReturnPressed(self):
         qtNom=self.lineEditNom.text()
         nom=str(qtNom)
         if not pattern_name.match(nom) :
-           self.lineEditNom.setText("")
-           commentaire=nom + tr(" n est pas un identifiant correct\n ")
-           self.editor.afficheInfos(commentaire,Qt.red)
+            self.lineEditNom.setText("")
+            commentaire=nom + tr(" n est pas un identifiant correct\n ")
+            self.editor.afficheInfos(commentaire,Qt.red)
         for p in self.editor.jdc.params :
-           if p.nom==nom :
-             commentaire=nom + tr(" existe deja\n ")
-             self.editor.afficheInfos(commentaire,Qt.red)
-             return
+            if p.nom==nom :
+                commentaire=nom + tr(" existe deja\n ")
+                self.editor.afficheInfos(commentaire,Qt.red)
+                return
 
         if self.lineEditVal.text()!="" : self.creeParametre()
         self.lineEditVal.setFocus(Qt.OtherFocusReason)
 
 
-  def initToutesVal(self):
+    def initToutesVal(self):
         self.LBParam.clear()
         for param in self.listeTousParam :
             self.LBParam.addItem((repr(param)))
             self.dictListe[repr(param)] = param.nom
-         
-         
-  
-  def valideParam(self):
+
+
+
+    def valideParam(self):
         if self.LBParam.selectedItems()== None : return
         lParam=[]
         for indice in range(len(self.LBParam.selectedItems())):
@@ -153,9 +153,8 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
             lParam.append(param)
 
         try :
-          self.panel.ajoutNValeur(lParam)
+            self.panel.ajoutNValeur(lParam)
         except :
-          for p in lParam :
-             self.panel.ajout1Valeur(p)
+            for p in lParam :
+                self.panel.ajout1Valeur(p)
         self.close()
-
index 3e2ab8f68980d41528baf6bce444c092d57fc849..b26fe3be4417d790a2b56e1a60c840ea08d82456 100644 (file)
@@ -30,33 +30,30 @@ from copy import copy,deepcopy
 from PyQt5.QtCore import Qt
 
 
-      
-class MonWidgetCreeUserAssd ( MonWidgetSimpTxt):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      MonWidgetSimpTxt. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      #self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
 
-  def LEvaleurPressed(self):
-      try :
-        if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
-      except : pass
-      valeurEntree = str(self.lineEditVal.text())
-      if valeurEntree == self.oldValeurTexte : return
-      if self.oldValeurTexte == ""  : enCreation = True
-      else                          : enCreation = False
-      if enCreation : validite,commentaire=self.objSimp.creeUserASSDetSetValeur(valeurEntree)
-      else          : validite,commentaire=self.objSimp.renommeSdCree(valeurEntree)
-      if not enCreation : self.node.updateNodeTexte()
-      #PNPNPN -- signal update sur les fils ou ?
-      if commentaire != "" :
-         if validite : 
-            self.editor.afficheCommentaire(commentaire)
-            self.oldValeurTexte = self.lineEditVal.text()
-         else  : 
-            self.editor.afficheInfos(commentaire,Qt.red)
-            self.lineEditVal.setText("")
-            self.oldValeurTexte=""
-      self.parentQt.propageChange(self.objSimp.definition.type[0],self)
-      
-       
+class MonWidgetCreeUserAssd ( MonWidgetSimpTxt):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        MonWidgetSimpTxt. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        #self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
 
+    def LEvaleurPressed(self):
+        try :
+            if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+        except : pass
+        valeurEntree = str(self.lineEditVal.text())
+        if valeurEntree == self.oldValeurTexte : return
+        if self.oldValeurTexte == ""  : enCreation = True
+        else                          : enCreation = False
+        if enCreation : validite,commentaire=self.objSimp.creeUserASSDetSetValeur(valeurEntree)
+        else          : validite,commentaire=self.objSimp.renommeSdCree(valeurEntree)
+        if not enCreation : self.node.updateNodeTexte()
+        #PNPNPN -- signal update sur les fils ou ?
+        if commentaire != "" :
+            if validite :
+                self.editor.afficheCommentaire(commentaire)
+                self.oldValeurTexte = self.lineEditVal.text()
+            else  :
+                self.editor.afficheInfos(commentaire,Qt.red)
+                self.lineEditVal.setText("")
+                self.oldValeurTexte=""
+        self.parentQt.propageChange(self.objSimp.definition.type[0],self)
index dd5964dde81fe8540489d0472144e6dd5cd07d8e..689be078b45a3a261c79c269971bea34aed8897c 100644 (file)
@@ -25,27 +25,26 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from .monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetDate       import Ui_WidgetDate 
+from .monWidgetSimpTuple    import MonWidgetSimpTuple
+from desWidgetDate       import Ui_WidgetDate
 
 
 class MonWidgetDate (Ui_WidgetDate,MonWidgetSimpTuple):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-           self.lineEditVal1.setDisabled(True)
-           self.lineEditVal2.setDisabled(True)
-           self.lineEditVal3.setDisabled(True)
-           self.lineEditVal1.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
-           self.lineEditVal2.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
-           self.lineEditVal3.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
-           self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal3.setDisabled(True)
+            self.lineEditVal1.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
+            self.lineEditVal2.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
+            self.lineEditVal3.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
         else :
-           self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
         #self.maCommande.listeAffichageWidget.append(self.lineEditVal2)
         #self.maCommande.listeAffichageWidget.append(self.lineEditVal3)
-
index c6758b396e6f22b7584f39a0f2296373e232c9ac..7b2ad86afff1039d4d9054a86aa7d34c2db0c341 100644 (file)
@@ -32,46 +32,46 @@ from Extensions.i18n import tr
 
 # PN 18 mai 2020 : affiche systematique des optionnels
 class MonWidgetFactCommun(Groupe):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
-      #print "fact : ",node.item.nom
-      Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      labeltext,fonte,couleur = self.node.item.getLabelText()
-      self.GroupBox.setText(tr(labeltext))
-      self.GroupBox.setTextInteractionFlags(Qt.TextSelectableByMouse)
-      self.parentQt.commandesLayout.insertWidget(-1,self)
-      self.doitAfficherOptionnel=True
-      min,max=obj.getMinMax()
-      if max < 2 and  hasattr(self, 'RBPlus') : self.RBPlus.close() 
-      if max > 1 and  hasattr(self, 'RBPlus') : self.RBPlus.clicked.connect(self.ajouteMCParPB)
+    """
+    """
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        #print "fact : ",node.item.nom
+        Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        labeltext,fonte,couleur = self.node.item.getLabelText()
+        self.GroupBox.setText(tr(labeltext))
+        self.GroupBox.setTextInteractionFlags(Qt.TextSelectableByMouse)
+        self.parentQt.commandesLayout.insertWidget(-1,self)
+        self.doitAfficherOptionnel=True
+        min,max=obj.getMinMax()
+        if max < 2 and  hasattr(self, 'RBPlus') : self.RBPlus.close()
+        if max > 1 and  hasattr(self, 'RBPlus') : self.RBPlus.clicked.connect(self.ajouteMCParPB)
 
-  def enterEvent(self,event):
-      #print "enterEvent ", self.node.item.getLabelText()[0]
-      self.doitAfficherOptionnel=True
-      QWidget.enterEvent(self,event)
-      QTimer.singleShot(500, self.delayAffiche)
+    def enterEvent(self,event):
+        #print "enterEvent ", self.node.item.getLabelText()[0]
+        self.doitAfficherOptionnel=True
+        QWidget.enterEvent(self,event)
+        QTimer.singleShot(500, self.delayAffiche)
 
-  def leaveEvent(self,event):
-      #print "leaveEvent", self.node.item.getLabelText()[0]
-      #self.doitAfficherOptionnel=False
-      QWidget.leaveEvent(self,event)
+    def leaveEvent(self,event):
+        #print "leaveEvent", self.node.item.getLabelText()[0]
+        #self.doitAfficherOptionnel=False
+        QWidget.leaveEvent(self,event)
 
-  def delayAffiche(self):
-      #print "delayAffiche, self.doitAfficherOptionnel = ", self.doitAfficherOptionnel
-      if self.doitAfficherOptionnel and self.editor.code != "CARMELCND" :self.afficheOptionnel()
+    def delayAffiche(self):
+        #print "delayAffiche, self.doitAfficherOptionnel = ", self.doitAfficherOptionnel
+        if self.doitAfficherOptionnel and self.editor.code != "CARMELCND" :self.afficheOptionnel()
 
-  def ajouteMCParPB(self):
-      texteListeNom="+"+self.obj.nom
-      parentOuAjouter=self.parentQt
-      from .monWidgetBloc import MonWidgetBloc
-      while (parentOuAjouter and isinstance(parentOuAjouter, MonWidgetBloc)) :
-         parentOuAjouter=parentOuAjouter.parentQt
-      parentOuAjouter.ajoutMC(texteListeNom)
+    def ajouteMCParPB(self):
+        texteListeNom="+"+self.obj.nom
+        parentOuAjouter=self.parentQt
+        from .monWidgetBloc import MonWidgetBloc
+        while (parentOuAjouter and isinstance(parentOuAjouter, MonWidgetBloc)) :
+            parentOuAjouter=parentOuAjouter.parentQt
+        parentOuAjouter.ajoutMC(texteListeNom)
 
 
 #  def reaffiche(self, nodeAVoir=None):
-#      print ('ds reaffiche : ', self.obj.nom, self.node.firstDeplie) 
+#      print ('ds reaffiche : ', self.obj.nom, self.node.firstDeplie)
 #      if self.node.editor.maConfiguration.afficheFirstPlies and self.node.firstDeplie:
 #         self.node.firstDeplie =False
 #         self.node.setPlie()
@@ -80,14 +80,14 @@ class MonWidgetFactCommun(Groupe):
 
 
 class MonWidgetFact(Ui_WidgetFact,MonWidgetFactCommun):
-  #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
-  #    MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
-      MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+    #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
+    #    MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
 
 class MonWidgetFactTableau(Ui_WidgetFact,MonWidgetFactCommun):
-  #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
-  #    MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
-      MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      MonWidgetFactTableau.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+    #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
+    #    MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        MonWidgetFactTableau.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
index e479f312c6c80632b141963e3c605db51e638d49..ad383d72b7255d22d89b7a746da03fca1cd3acb1 100644 (file)
@@ -26,16 +26,15 @@ from Extensions.i18n import tr
 # Import des panels
 
 class MonWidgetFactPlie(Ui_WidgetFactPlie,Groupe):
-  """
-  """
-  #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=-1):
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
-      #print "fact plie : ",node.item.nom
-      node.fenetreAAfficher=self
-      Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      self.groupBox.setText(self.node.item.getLabelText()[0])
-      self.parentQt.commandesLayout.insertWidget(-1,self)
-
-  def traiteClicSurLabel(self,texte):
-      return
+    """
+    """
+    #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=-1):
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        #print "fact plie : ",node.item.nom
+        node.fenetreAAfficher=self
+        Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        self.groupBox.setText(self.node.item.getLabelText()[0])
+        self.parentQt.commandesLayout.insertWidget(-1,self)
 
+    def traiteClicSurLabel(self,texte):
+        return
index f1add2f1b6a81905c4f30fe1ae60918ba85eeb97..d76500e025e549d5c3d278c2357900be727fed69 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desWidgetFormule import Ui_WidgetFormule
@@ -33,58 +33,58 @@ from PyQt5.QtCore import Qt
 
 
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetFormule(QWidget,Ui_WidgetFormule,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,etape):
-      #print "MonWidgetFormule ", self
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.editor=editor
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-      self.setupUi(self)
-      
-      self.setIconePoubelle()
-      self.setIconesGenerales()
-      self.setValeurs()
-      self.setValide()
-
-     
-      if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
-      else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
-      if self.editor.code in ['Adao','MAP','ADAO'] : 
-          self.bAvant.close()
-          self.bApres.close()
-      else : 
-          self.bAvant.clicked.connect(self.afficheAvant)
-          self.bApres.clicked.connect(self.afficheApres)
-      self.LENom.returnPressed.connect(self.nomChange)
-      self.LENomFormule.returnPressed.connect(self.nomFormuleSaisi)
-      self.LENomsArgs.returnPressed.connect(self.argsSaisis)
-      self.LECorpsFormule.returnPressed.connect(self.FormuleSaisie)
-
-
-   
-      self.racine=self.node.tree.racine
-      self.monOptionnel=None
-      self.editor.fermeOptionnel()
-      #print "fin init de widget Commande"
-      
-
-  def donnePremier(self):
-      self.listeAffichageWidget[0].setFocus(7)
-
-
-  def setValeurs(self):
+    """
+    """
+    def __init__(self,node,editor,etape):
+        #print "MonWidgetFormule ", self
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.editor=editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.setupUi(self)
+
+
+        self.setIconePoubelle()
+        self.setIconesGenerales()
+        self.setValeurs()
+        self.setValide()
+
+
+        if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
+        else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
+        if self.editor.code in ['Adao','MAP','ADAO'] :
+            self.bAvant.close()
+            self.bApres.close()
+        else :
+            self.bAvant.clicked.connect(self.afficheAvant)
+            self.bApres.clicked.connect(self.afficheApres)
+        self.LENom.returnPressed.connect(self.nomChange)
+        self.LENomFormule.returnPressed.connect(self.nomFormuleSaisi)
+        self.LENomsArgs.returnPressed.connect(self.argsSaisis)
+        self.LECorpsFormule.returnPressed.connect(self.FormuleSaisie)
+
+
+
+        self.racine=self.node.tree.racine
+        self.monOptionnel=None
+        self.editor.fermeOptionnel()
+        #print "fin init de widget Commande"
+
+
+    def donnePremier(self):
+        self.listeAffichageWidget[0].setFocus(7)
+
+
+    def setValeurs(self):
         self.LENomFormule.setText(self.node.item.getNom())
         self.LECorpsFormule.setText(self.node.item.getCorps())
         texte_args=""
@@ -95,110 +95,109 @@ class MonWidgetFormule(QWidget,Ui_WidgetFormule,FacultatifOuOptionnel):
         self.LENomsArgs.setText(texte_args)
 
 
-  def nomChange(self):
-      nom = str(self.LENom.text())
-      self.LENomFormule.setText(nom)
-      self.nomFormuleSaisi()
-
-
-  def afficheCatalogue(self):
-      if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
-      self.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.racine.select()
-
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
-  def setValide(self):
-      if not(hasattr (self,'RBValide')) : return
-      icon = QIcon()
-      if self.node.item.object.isValid() :
-         icon=QIcon(self.repIcon+"/ast-green-ball.png")
-      else :
-         icon=QIcon(self.repIcon+"/ast-red-ball.png")
-      if self.node.item.getIconName() == "ast-yellow-square" :
-         icon=QIcon(self.repIcon+"/ast-yel-ball.png")
-      self.RBValide.setIcon(icon)
-
-
-  def nomFormuleSaisi(self):
-      nomFormule = str(self.LENomFormule.text())
-      if nomFormule == '' : return
-      self.LENom.setText(nomFormule)
-      test,erreur = self.node.item.verifNom(nomFormule)
-      if test :
-         commentaire=nomFormule+tr(" est un nom valide pour une FORMULE")
-         self.editor.afficheInfos(commentaire)
-      else :
-         commentaire=nomFormule+tr(" n'est pas un nom valide pour une FORMULE")
-         self.editor.afficheInfos(commentaire,Qt.red)
-         return
-      if str(self.LENomsArgs.text()) != "" and  str(self.LECorpsFormule.text())!= "" : self.BOkPressedFormule()
-      self.LENomsArgs.setFocus(7)
-
-  def argsSaisis(self):
-      arguments = str(self.LENomsArgs.text())
-      if arguments == '' : return
-      test,erreur = self.node.item.verifArguments(arguments)
-      if test:
-         commentaire=tr("Argument(s) valide(s) pour une FORMULE")
-         self.editor.afficheInfos(commentaire)
-      else:
-         commentaire=tr("Argument(s) invalide(s) pour une FORMULE")
-         self.editor.afficheInfos(commentaire,Qt.red)
-      if str(self.LECorpsFormule.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
-      self.LECorpsFormule.setFocus(7)
-
-  def FormuleSaisie(self):
-      nomFormule = str(self.LENomFormule.text())
-      arguments  = str(self.LENomsArgs.text())
-      expression = str(self.LECorpsFormule.text())
-      if expression == '' : return
-      test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
-
-      if test:
-         commentaire=tr("Corps de FORMULE valide")
-         self.editor.afficheInfos(commentaire)
-      else:
-         commentaire=tr("Corps de FORMULE invalide")
-         self.editor.afficheInfos(commentaire,Qt.red)
-      if str(self.LENomsArgs.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
-
-  def BOkPressedFormule(self):
-      #print dir(self)
-      #if self.parent.modified == 'n' : self.parent.initModif()
-
-      nomFormule = str(self.LENomFormule.text())
-      test,erreur = self.node.item.verifNom(nomFormule)
-      if not test :
-         self.editor.afficheInfos(erreur,Qt.red)
-         return
-
-      arguments  = str(self.LENomsArgs.text())
-      test,erreur = self.node.item.verifArguments(arguments)
-      if not test :
-         self.editor.afficheInfos(erreur,Qt.red)
-         return
-
-      expression = str(self.LECorpsFormule.text())
-      test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
-      if not test :
-         self.editor.afficheInfos(erreur,Qt.red)
-         return
-
-      test=self.node.item.object.updateFormulePython(formule=(nomFormule,"REEL",arguments,expression))
-      test,erreur = self.node.item.saveFormule(nomFormule,"REEL",arguments,expression)
-      if test :
-         self.node.onValid()
-         self.node.update_valid()
-         commentaire = "Formule saisie"
-         self.editor.afficheInfos(commentaire)
-      else:
-         commentaire ="Formule incorrecte : " + erreur
-         self.editor.afficheInfos(commentaire,Qt.red)
-      self.editor.initModif()
-
+    def nomChange(self):
+        nom = str(self.LENom.text())
+        self.LENomFormule.setText(nom)
+        self.nomFormuleSaisi()
+
+
+    def afficheCatalogue(self):
+        if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
+        self.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.racine.select()
+
+    def afficheApres(self):
+        self.node.selectApres()
+
+    def afficheAvant(self):
+        self.node.selectAvant()
+
+    def setValide(self):
+        if not(hasattr (self,'RBValide')) : return
+        icon = QIcon()
+        if self.node.item.object.isValid() :
+            icon=QIcon(self.repIcon+"/ast-green-ball.png")
+        else :
+            icon=QIcon(self.repIcon+"/ast-red-ball.png")
+        if self.node.item.getIconName() == "ast-yellow-square" :
+            icon=QIcon(self.repIcon+"/ast-yel-ball.png")
+        self.RBValide.setIcon(icon)
+
+
+    def nomFormuleSaisi(self):
+        nomFormule = str(self.LENomFormule.text())
+        if nomFormule == '' : return
+        self.LENom.setText(nomFormule)
+        test,erreur = self.node.item.verifNom(nomFormule)
+        if test :
+            commentaire=nomFormule+tr(" est un nom valide pour une FORMULE")
+            self.editor.afficheInfos(commentaire)
+        else :
+            commentaire=nomFormule+tr(" n'est pas un nom valide pour une FORMULE")
+            self.editor.afficheInfos(commentaire,Qt.red)
+            return
+        if str(self.LENomsArgs.text()) != "" and  str(self.LECorpsFormule.text())!= "" : self.BOkPressedFormule()
+        self.LENomsArgs.setFocus(7)
+
+    def argsSaisis(self):
+        arguments = str(self.LENomsArgs.text())
+        if arguments == '' : return
+        test,erreur = self.node.item.verifArguments(arguments)
+        if test:
+            commentaire=tr("Argument(s) valide(s) pour une FORMULE")
+            self.editor.afficheInfos(commentaire)
+        else:
+            commentaire=tr("Argument(s) invalide(s) pour une FORMULE")
+            self.editor.afficheInfos(commentaire,Qt.red)
+        if str(self.LECorpsFormule.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
+        self.LECorpsFormule.setFocus(7)
+
+    def FormuleSaisie(self):
+        nomFormule = str(self.LENomFormule.text())
+        arguments  = str(self.LENomsArgs.text())
+        expression = str(self.LECorpsFormule.text())
+        if expression == '' : return
+        test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
+
+        if test:
+            commentaire=tr("Corps de FORMULE valide")
+            self.editor.afficheInfos(commentaire)
+        else:
+            commentaire=tr("Corps de FORMULE invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
+        if str(self.LENomsArgs.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
+
+    def BOkPressedFormule(self):
+        #print dir(self)
+        #if self.parent.modified == 'n' : self.parent.initModif()
+
+        nomFormule = str(self.LENomFormule.text())
+        test,erreur = self.node.item.verifNom(nomFormule)
+        if not test :
+            self.editor.afficheInfos(erreur,Qt.red)
+            return
+
+        arguments  = str(self.LENomsArgs.text())
+        test,erreur = self.node.item.verifArguments(arguments)
+        if not test :
+            self.editor.afficheInfos(erreur,Qt.red)
+            return
+
+        expression = str(self.LECorpsFormule.text())
+        test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
+        if not test :
+            self.editor.afficheInfos(erreur,Qt.red)
+            return
+
+        test=self.node.item.object.updateFormulePython(formule=(nomFormule,"REEL",arguments,expression))
+        test,erreur = self.node.item.saveFormule(nomFormule,"REEL",arguments,expression)
+        if test :
+            self.node.onValid()
+            self.node.update_valid()
+            commentaire = "Formule saisie"
+            self.editor.afficheInfos(commentaire)
+        else:
+            commentaire ="Formule incorrecte : " + erreur
+            self.editor.afficheInfos(commentaire,Qt.red)
+        self.editor.initModif()
index 8587fb1204357030e094779d955bf8b1f4d5726e..62811aa611d1d5bb69cb6e9373e4338be1b27d3d 100644 (file)
@@ -26,10 +26,10 @@ from Extensions.i18n import tr
 
 from .feuille               import Feuille
 from .monWidgetSimpBase     import MonWidgetSimpBase
-from desWidgetHeure       import Ui_WidgetHeure 
+from desWidgetHeure       import Ui_WidgetHeure
 
 
 class MonWidgetHeure (Ui_WidgetHeure,MonWidgetSimpBase):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
index db3657af399c3a777d4e6f20aa3880d859baf673..33d25e1f7d37c1cf3f4e69cb51e3755ed921fdb7 100644 (file)
@@ -24,64 +24,62 @@ from PyQt5.QtWidgets import QWidget
 
 from Extensions.i18n import tr
 from desWidgetInactif import Ui_WidgetInactif
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetInactif(QWidget,Ui_WidgetInactif):
-  """
-  """
-  def __init__(self,node,editor):
-       QWidget.__init__(self,None)
-       self.node=node
-       self.editor=editor
-       self.setupUi(self)
-       from .monWidgetOptionnel import MonWidgetOptionnel
-       if self.editor.widgetOptionnel!= None :
-          self.monOptionnel=self.editor.widgetOptionnel
-       else :
-          self.monOptionnel=MonWidgetOptionnel(self)
-          self.editor.widgetOptionnel=self.monOptionnel
-          self.editor.splitter.addWidget(self.monOptionnel)
-          self.editor.restoreSplitterSizes()
-       self.afficheOptionnel()
-       self.bAvant.clicked.connect(self.afficheAvant)
-       self.bApres.clicked.connect(self.afficheApres)
-       self.bCatalogue.clicked.connect(self.afficheCatalogue)
-       self.labelNomCommande.setText(tr(self.node.item.nom))
-       self.labelNomCommande.setEnabled(False)
-
-  def traiteClicSurLabel(self):
-      pass
-  
-  def donnePremier(self):
-      pass
+    """
+    """
+    def __init__(self,node,editor):
+        QWidget.__init__(self,None)
+        self.node=node
+        self.editor=editor
+        self.setupUi(self)
+        from .monWidgetOptionnel import MonWidgetOptionnel
+        if self.editor.widgetOptionnel!= None :
+            self.monOptionnel=self.editor.widgetOptionnel
+        else :
+            self.monOptionnel=MonWidgetOptionnel(self)
+            self.editor.widgetOptionnel=self.monOptionnel
+            self.editor.splitter.addWidget(self.monOptionnel)
+            self.editor.restoreSplitterSizes()
+        self.afficheOptionnel()
+        self.bAvant.clicked.connect(self.afficheAvant)
+        self.bApres.clicked.connect(self.afficheApres)
+        self.bCatalogue.clicked.connect(self.afficheCatalogue)
+        self.labelNomCommande.setText(tr(self.node.item.nom))
+        self.labelNomCommande.setEnabled(False)
 
-  def setValide(self):
-      pass 
+    def traiteClicSurLabel(self):
+        pass
 
-  def afficheOptionnel(self):
-      # N a pas de parentQt. doit donc etre redefini
-      if self.editor.maConfiguration.closeOptionnel : return
-      liste=[]
-      #print "dans afficheOptionnel", self.monOptionnel
-      # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
-      #if self.monOptionnel == None : return
-      self.monOptionnel.parentMC=self
-      self.monOptionnel.afficheOptionnelVide()
+    def donnePremier(self):
+        pass
 
+    def setValide(self):
+        pass
 
-  def afficheCatalogue(self):
-      if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
-      self.node.tree.racine.affichePanneau()
-      self.node.tree.racine.select()
+    def afficheOptionnel(self):
+        # N a pas de parentQt. doit donc etre redefini
+        if self.editor.maConfiguration.closeOptionnel : return
+        liste=[]
+        #print "dans afficheOptionnel", self.monOptionnel
+        # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
+        #if self.monOptionnel == None : return
+        self.monOptionnel.parentMC=self
+        self.monOptionnel.afficheOptionnelVide()
 
-  def afficheApres(self):
-       self.node.selectApres()
 
-  def afficheAvant(self):
-       self.node.selectAvant()
+    def afficheCatalogue(self):
+        if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
+        self.node.tree.racine.affichePanneau()
+        self.node.tree.racine.select()
 
+    def afficheApres(self):
+        self.node.selectApres()
 
+    def afficheAvant(self):
+        self.node.selectAvant()
index 0bfc2dd5a6a84c9d244ff983208db86b766babc9..c48357f21ab1e5eeec7fb48ff117d33168397539 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -29,13 +29,13 @@ import types,os
 from PyQt5.QtWidgets import QWidget
 from Extensions.i18n import tr
 
-from desWidgetInformation  import Ui_WidgetInformative 
+from desWidgetInformation  import Ui_WidgetInformative
 
 
 class MonWidgetInfo (Ui_WidgetInformative,QWidget):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         QWidget.__init__(self,None)
         self.setupUi(self)
         valeur=node.item.getValeur()
index 42c72358985bf4e4b6f38285cb896ebc3381ec83..4a08d57abe040a8681420110641e956b51f7da58 100644 (file)
@@ -20,8 +20,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
@@ -34,39 +34,38 @@ from PyQt5.QtCore import Qt
 
 from Extensions.i18n import tr
 
-from desWidgetIntoSug        import Ui_WidgetIntoSug 
-from monWidgetPlusieursInto  import MonWidgetPlusieursInto 
+from desWidgetIntoSug        import Ui_WidgetIntoSug
+from monWidgetPlusieursInto  import MonWidgetPlusieursInto
 
 class GereAjoutDsPossible:
-  def LEValeurAjouteDsPossible(self):
-       text=str(self.lineEditVal.text())
-       if text == "" : return
-       # il faudrait essauer d en obtenir un reel, un tuple ou ...
-       # si cela est utilise pour autre chose que Telemac
-       # tout devrait etre fait ici
-       if not isinstance(text,str) : 
-          self.lineEditVal.setText("")
-          return
-       if self.node.item.hasIntoSug() : 
-          self.maListeDeValeur=list(self.node.item.getListePossibleAvecSug([]))
-          self.maListeDeValeur.insert(0,text)
-       else :
-         try :
-           self.monSimpDef.intoSug.insert(0,text)
-         except : 
-           self.monSimpDef.intoSug=list(self.monSimpDef.intoSug)
-           self.monSimpDef.intoSug.insert(0,text)
-       # selon si on est une liste ou un combo
-       try : self.ajouteValeurPossible(text)
-       except : self.setValeurs()
+    def LEValeurAjouteDsPossible(self):
+        text=str(self.lineEditVal.text())
+        if text == "" : return
+        # il faudrait essauer d en obtenir un reel, un tuple ou ...
+        # si cela est utilise pour autre chose que Telemac
+        # tout devrait etre fait ici
+        if not isinstance(text,str) :
+            self.lineEditVal.setText("")
+            return
+        if self.node.item.hasIntoSug() :
+            self.maListeDeValeur=list(self.node.item.getListePossibleAvecSug([]))
+            self.maListeDeValeur.insert(0,text)
+        else :
+            try :
+                self.monSimpDef.intoSug.insert(0,text)
+            except :
+                self.monSimpDef.intoSug=list(self.monSimpDef.intoSug)
+                self.monSimpDef.intoSug.insert(0,text)
+        # selon si on est une liste ou un combo
+        try : self.ajouteValeurPossible(text)
+        except : self.setValeurs()
 
 class MonWidgetIntoSug (Ui_WidgetIntoSug, MonWidgetPlusieursInto,GereAjoutDsPossible):
 # Attention Attention
 # cette wdget ne fonctionne actuellement que pour Telemac
-# on attend du texte . on n essaye pas de transformer 
+# on attend du texte . on n essaye pas de transformer
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
 
         MonWidgetPlusieursInto.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
-
index 9a9a1d835b37d91b26a6dfd4e1133aea782f357d..bb3dc1e671a5d2911a667ff45d343b9f4027b105 100644 (file)
@@ -21,8 +21,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os,sys
@@ -32,7 +32,7 @@ from Extensions.i18n import tr
 from .feuille         import Feuille
 
 
-from desWidgetMatrice  import Ui_desWidgetMatrice 
+from desWidgetMatrice  import Ui_desWidgetMatrice
 
 from PyQt5.QtCore import QSize, Qt
 from PyQt5.QtWidgets import QTableWidgetItem, QTableWidget
@@ -43,7 +43,7 @@ from PyQt5.QtWidgets import  QMessageBox
 class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.monType = self.node.item.object.definition.type[0]
         parentQt.commandesLayout.insertWidget(-1,self)
@@ -54,210 +54,209 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
         self.initialValeur()
 
 
-  def connecterSignaux(self) :
-      self.TBMatrice.itemChanged.connect(self.itemChanged)
-      self.PBrefresh.clicked.connect( self.acceptVal)
-      self.TBMatrice.focusOutEvent=self.monFocusOutEvent
-
-
-  def monFocusOutEvent(self,event):
-      self.acceptVal()
-      QTableWidget.focusInEvent(self.TBMatrice,event)
-
-
-  def itemChanged(self):
-      monItem=self.TBMatrice.currentItem()
-      if monItem==None : return
-      texte=monItem.text()
-      if texte=="" : return
-      if self.monType.typElt == 'R' :
-         try    : val=float(str(texte)); ok=True
-         except : ok=False
-         if ok == False :
-             self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
-             monItem.setText("")
-             return
-         if self.monType.valSup != None :
-            if val > self.monType.valSup :
-               self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
-               monItem.setText("")
-               return
-         if self.monType.valMin != None :
-            if val < self.monType.valMin :
-               self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
-               monItem.setText("")
-               return
-         self.editor.afficheInfos("")
-         if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
-      if self.monType.typElt == 'TXM' :
-         if self.monType.typEltInto != None and texte not in self.monType.typEltInto :
-               self.editor.afficheInfos(tr("Entrer une valeur qui est ") + str(self.monType.typEltInto),Qt.red)
-               monItem.setText("")
-               return
-
-
-  def creeColonnes(self):
-      if self.monType.methodeCalculTaille != None :
-         try:
-           MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
-         except :
-           QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
-           return
-      else :
-         self.nbLigs=self.monType.nbLigs
-         self.nbCols=self.monType.nbCols
-      self.TBMatrice.setColumnCount(self.nbLigs)
-      self.TBMatrice.setRowCount(self.nbCols)
-      if self.monType.listeHeaders != None :
-         self.TBMatrice.setVerticalHeaderLabels(self.monType.listeHeaders[0])
-         self.TBMatrice.setHorizontalHeaderLabels(self.monType.listeHeaders[1])
-      else :
-         self.TBMatrice.verticalHeader().hide()
-         self.TBMatrice.horizontalHeader().hide()
-
-
-  def  initialValeur(self):
-      liste=self.node.item.getValeur()
-      if liste == None : return
-      dejaAffiche=0
-      if (len(liste)) != self.nbLigs  :
-         QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
-      for i in range(self.nbLigs):
-          inter=liste[i]
-          if (len(inter)) != self.nbCols :
-             QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
-             raise  EficasException('dimension')
-          for j in range(self.nbCols):
-              self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i][j])))
-              
-  def acceptVal(self):
-      liste=[]
-      for i in range(self.nbLigs):
-          listeCol=[]
-          for j in range(self.nbCols):
-              monItem=self.TBMatrice.item(i,j)       
-              if monItem : texte=monItem.text()
-              else       : texte = ''
-              if self.monType.typElt == 'R' :
-                  try    : val=float(str(texte))
-                  except : val=None
-              val=texte
-              listeCol.append(val)
-          liste.append(listeCol)
-      self.node.item.setValeur(liste)
+    def connecterSignaux(self) :
+        self.TBMatrice.itemChanged.connect(self.itemChanged)
+        self.PBrefresh.clicked.connect( self.acceptVal)
+        self.TBMatrice.focusOutEvent=self.monFocusOutEvent
+
+
+    def monFocusOutEvent(self,event):
+        self.acceptVal()
+        QTableWidget.focusInEvent(self.TBMatrice,event)
+
+
+    def itemChanged(self):
+        monItem=self.TBMatrice.currentItem()
+        if monItem==None : return
+        texte=monItem.text()
+        if texte=="" : return
+        if self.monType.typElt == 'R' :
+            try    : val=float(str(texte)); ok=True
+            except : ok=False
+            if ok == False :
+                self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
+                monItem.setText("")
+                return
+            if self.monType.valSup != None :
+                if val > self.monType.valSup :
+                    self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
+                    monItem.setText("")
+                    return
+            if self.monType.valMin != None :
+                if val < self.monType.valMin :
+                    self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
+                    monItem.setText("")
+                    return
+            self.editor.afficheInfos("")
+            if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
+        if self.monType.typElt == 'TXM' :
+            if self.monType.typEltInto != None and texte not in self.monType.typEltInto :
+                self.editor.afficheInfos(tr("Entrer une valeur qui est ") + str(self.monType.typEltInto),Qt.red)
+                monItem.setText("")
+                return
+
+
+    def creeColonnes(self):
+        if self.monType.methodeCalculTaille != None :
+            try:
+                MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
+            except :
+                QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
+                return
+        else :
+            self.nbLigs=self.monType.nbLigs
+            self.nbCols=self.monType.nbCols
+        self.TBMatrice.setColumnCount(self.nbLigs)
+        self.TBMatrice.setRowCount(self.nbCols)
+        if self.monType.listeHeaders != None :
+            self.TBMatrice.setVerticalHeaderLabels(self.monType.listeHeaders[0])
+            self.TBMatrice.setHorizontalHeaderLabels(self.monType.listeHeaders[1])
+        else :
+            self.TBMatrice.verticalHeader().hide()
+            self.TBMatrice.horizontalHeader().hide()
+
+
+    def  initialValeur(self):
+        liste=self.node.item.getValeur()
+        if liste == None : return
+        dejaAffiche=0
+        if (len(liste)) != self.nbLigs  :
+            QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
+        for i in range(self.nbLigs):
+            inter=liste[i]
+            if (len(inter)) != self.nbCols :
+                QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
+                raise  EficasException('dimension')
+            for j in range(self.nbCols):
+                self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i][j])))
+
+    def acceptVal(self):
+        liste=[]
+        for i in range(self.nbLigs):
+            listeCol=[]
+            for j in range(self.nbCols):
+                monItem=self.TBMatrice.item(i,j)
+                if monItem : texte=monItem.text()
+                else       : texte = ''
+                if self.monType.typElt == 'R' :
+                    try    : val=float(str(texte))
+                    except : val=None
+                val=texte
+                listeCol.append(val)
+            liste.append(listeCol)
+        self.node.item.setValeur(liste)
 
 
 class MonWidgetMatriceOT (MonWidgetMatrice):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         monWidgetMatrice.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def connecterSignaux(self) :
-      self.TBMatrice.itemChanged.connect(self.itemChanged)
-      self.PBrefresh.clicked.connect( self.afficheEntete)
-
-
-  def afficheEntete(self):
-      self.objSimp.changeEnteteMatrice()
-      self.TBMatrice.clear()
-      if self.node.item.getValeur()== None:  self.initialSsValeur()
-      else :
-         try    : self.initialValeur()
-         except : self.initialSsValeur()
-      self.node.item.object.state='changed'
-      self.node.item.object.parent.state='changed'
-      self.setValide()
-      self.parentQt.setValide()
-      self.node.item.jdc.isValid()
-
-
-  def itemChanged(self):
-      monItem=self.TBMatrice.currentItem()
-      if monItem==None : return
-      texte=monItem.text()
-      if texte=="" : return
-      try :
-        val=float(str(texte))
-        ok=True
-      except :
-        ok=False
-      if ok == False :
-        self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
-        monItem.setText("")
-        return
-      if self.monType.valSup != None :
-         if val > self.monType.valSup :
-            self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
+    def connecterSignaux(self) :
+        self.TBMatrice.itemChanged.connect(self.itemChanged)
+        self.PBrefresh.clicked.connect( self.afficheEntete)
+
+
+    def afficheEntete(self):
+        self.objSimp.changeEnteteMatrice()
+        self.TBMatrice.clear()
+        if self.node.item.getValeur()== None:  self.initialSsValeur()
+        else :
+            try    : self.initialValeur()
+            except : self.initialSsValeur()
+        self.node.item.object.state='changed'
+        self.node.item.object.parent.state='changed'
+        self.setValide()
+        self.parentQt.setValide()
+        self.node.item.jdc.isValid()
+
+
+    def itemChanged(self):
+        monItem=self.TBMatrice.currentItem()
+        if monItem==None : return
+        texte=monItem.text()
+        if texte=="" : return
+        try :
+            val=float(str(texte))
+            ok=True
+        except :
+            ok=False
+        if ok == False :
+            self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
             monItem.setText("")
             return
-      if self.monType.valMin != None :
-         if val < self.monType.valMin :
-            self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
-            monItem.setText("")
+        if self.monType.valSup != None :
+            if val > self.monType.valSup :
+                self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
+                monItem.setText("")
+                return
+        if self.monType.valMin != None :
+            if val < self.monType.valMin :
+                self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
+                monItem.setText("")
+                return
+        self.editor.afficheInfos("")
+        if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
+        self.acceptVal()
+
+
+
+    def creeColonnes(self):
+        if self.monType.methodeCalculTaille != None :
+            try:
+                MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
+            except :
+                QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
+                return
+        else :
+            self.nbLigs=self.monType.nbLigs
+            self.nbCols=self.monType.nbCols
+
+
+    def  nbDeVariables(self):
+    # uniquement pour OT
+        jdc=self.node.item.object.jdc
+        etape=self.node.item.object.etape
+        self.listeVariables=jdc.getVariables(etape)
+        if self.listeVariables == [] :
+            QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
             return
-      self.editor.afficheInfos("")
-      if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
-      self.acceptVal()
-
-
-
-  def creeColonnes(self):
-      if self.monType.methodeCalculTaille != None :
-         try:
-           MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
-         except :
-           QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
-           return
-      else :
-         self.nbLigs=self.monType.nbLigs
-         self.nbCols=self.monType.nbCols
-
-
-  def  nbDeVariables(self):
-  # uniquement pour OT
-       jdc=self.node.item.object.jdc
-       etape=self.node.item.object.etape
-       self.listeVariables=jdc.getVariables(etape)
-       if self.listeVariables == [] :
-           QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
-           return
-       self.TBMatrice.setColumnCount(len(self.listeVariables))
-       self.TBMatrice.setRowCount(len(self.listeVariables))
-       self.nbLigs=len(self.listeVariables)
-       self.nbCols=len(self.listeVariables)
-
-
-  def  initialSsValeur(self):
-  # uniquement pour OT
-       self.listeVariables=[]
-       for row in range(self.nbLigs):
-           for column in range(self.nbCols):
-               if row == column :
-                   initialFloat=1
-               else :
-                  initialFloat=0
-               self.TBMatrice.setItem(row,column,QTableWidgetItem(str(initialFloat)))
-       header =[]
-       for var in liste[0]: header .append(str(var))
-       self.TBMatrice.setVerticalHeaderLabels(header)
-       self.TBMatrice.setHorizontalHeaderLabels(header)
-
-  def  initialValeur(self):
-  # uniquement pour OT
-      liste=self.node.item.getValeur()
-      dejaAffiche=0
-      if (len(liste)) != self.nbLigs +1   :
-         QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
-         raise  EficasException('dimension')
-      for i in range(self.nbLigs):
-          inter=liste[i+1]
-          if (len(inter)) != self.nbCols :
-             QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
-             raise  EficasException('dimension')
-          for j in range(self.nbCols):
-              self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i][j])))
-      header =[]
-      for var in liste[0]: header .append(str(var))
-      self.TBMatrice.setVerticalHeaderLabels(header)
-      self.TBMatrice.setHorizontalHeaderLabels(header)
-              
+        self.TBMatrice.setColumnCount(len(self.listeVariables))
+        self.TBMatrice.setRowCount(len(self.listeVariables))
+        self.nbLigs=len(self.listeVariables)
+        self.nbCols=len(self.listeVariables)
+
+
+    def  initialSsValeur(self):
+    # uniquement pour OT
+        self.listeVariables=[]
+        for row in range(self.nbLigs):
+            for column in range(self.nbCols):
+                if row == column :
+                    initialFloat=1
+                else :
+                    initialFloat=0
+                self.TBMatrice.setItem(row,column,QTableWidgetItem(str(initialFloat)))
+        header =[]
+        for var in liste[0]: header .append(str(var))
+        self.TBMatrice.setVerticalHeaderLabels(header)
+        self.TBMatrice.setHorizontalHeaderLabels(header)
+
+    def  initialValeur(self):
+    # uniquement pour OT
+        liste=self.node.item.getValeur()
+        dejaAffiche=0
+        if (len(liste)) != self.nbLigs +1   :
+            QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
+            raise  EficasException('dimension')
+        for i in range(self.nbLigs):
+            inter=liste[i+1]
+            if (len(inter)) != self.nbCols :
+                QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
+                raise  EficasException('dimension')
+            for j in range(self.nbCols):
+                self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i][j])))
+        header =[]
+        for var in liste[0]: header .append(str(var))
+        self.TBMatrice.setVerticalHeaderLabels(header)
+        self.TBMatrice.setHorizontalHeaderLabels(header)
index b3a7f27f720b175ecac29e50ca0393698f50ce73..27cc76b341152ba94b1c7e80f1eacac47182c597 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types
@@ -35,147 +35,145 @@ from PyQt5.QtGui  import  QIcon
 
 
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetNiveauFact(Ui_WidgetNiveauFact,Groupe):
-  """
-  """
-  def __init__(self,node,editor,definition,obj):
-      self.listeAffichageWidget=[]
-      self.listeBoutonAChanger=[]
-      Groupe.__init__(self,node,editor,None,definition,obj,1,self)
-      from InterfaceQT4 import composimp
-      if isinstance(self.node ,composimp.Node):
-         widget=self.node.getPanelGroupe(self,self.maCommande)
-         self.listeBoutonAChanger.append(widget.RBValide)
-      self.afficheOptionnel()
-      self.inhibe=False
-      self.labelDoc.setText(self.node.item.getFr())
-      self.labelNomCommande.setText(self.node.item.getLabelText()[0])
-
-  def reaffiche(self,nodeAVoir=None):
-      self.node.setDeplieChildren()
-      self.node.afficheCeNiveau()
-      self.editor.fenetreCentraleAffichee.labelDoc.setText(self.node.item.getFr())
-      self.editor.fenetreCentraleAffichee.labelNomCommande.setText(self.node.item.getLabelText()[0])
-
-  def getPanel(self):
-  # necessaire pour handleOnItem de browser.py
-  # non appele
-      pass 
-
-  def donnePremier(self):
-      #print "dans donnePremier"
-      QApplication.processEvents()
-      if self.listeAffichageWidget != [] :
-         self.listeAffichageWidget[0].setFocus(7)
-      QApplication.processEvents()
-      #print self.focusWidget()
-
-
-  def focusNextPrevChild(self, next):
-      # on s assure que ce n est pas un chgt de fenetre
-      #print "je passe dans focusNextPrevChild"
-      if self.editor.fenetreCentraleAffichee != self : return True
-      f=self.focusWidget()
-
-      if f not in self.listeAffichageWidget :
-         i=0
-         while not hasattr (f,'AAfficher') :
-           if f==None :i=-1; break
-           f=f.parentWidget()
-         if hasattr(f,'AAfficher') : f=f.AAfficher
-         if i != -1 : i=self.listeAffichageWidget.index(f)
-      else :i=self.listeAffichageWidget.index(f) 
-      if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe: 
-         try :
-           self.listeAffichageWidget[1].setFocus(7)
-           w=self.focusWidget()
-           self.inhibe=1
-           w.focusPreviousChild()
-           self.inhibe=0
-           return True
-         except : pass
-
-      if i==0 and next==False and not self.inhibe: 
-         if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
-            self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
-         self.listeAffichageWidget[-2].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-
-      if i==0 and next==True and not self.inhibe:
-         self.listeAffichageWidget[0].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-
-      if i>0 and next==False and not self.inhibe:
-         if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
-           self.listeAffichageWidget[i-1].setFocus(7)
-           return True
-      return QWidget.focusNextPrevChild(self, next)
-
-  def etablitOrdre(self):
-      # si on boucle on perd l'ordre
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-
-  def  afficheSuivant(self,f):
-      #print ('ds afficheSuivant')
-      try :
-        i=self.listeAffichageWidget.index(f) 
-        next=i+1
-      except :
-        next=1
-      if (next==len(self.listeAffichageWidget) ): next =0
-      try :
-        self.listeAffichageWidget[next].setFocus(7)
-      except :
+    """
+    """
+    def __init__(self,node,editor,definition,obj):
+        self.listeAffichageWidget=[]
+        self.listeBoutonAChanger=[]
+        Groupe.__init__(self,node,editor,None,definition,obj,1,self)
+        from InterfaceQT4 import composimp
+        if isinstance(self.node ,composimp.Node):
+            widget=self.node.getPanelGroupe(self,self.maCommande)
+            self.listeBoutonAChanger.append(widget.RBValide)
+        self.afficheOptionnel()
+        self.inhibe=False
+        self.labelDoc.setText(self.node.item.getFr())
+        self.labelNomCommande.setText(self.node.item.getLabelText()[0])
+
+    def reaffiche(self,nodeAVoir=None):
+        self.node.setDeplieChildren()
+        self.node.afficheCeNiveau()
+        self.editor.fenetreCentraleAffichee.labelDoc.setText(self.node.item.getFr())
+        self.editor.fenetreCentraleAffichee.labelNomCommande.setText(self.node.item.getLabelText()[0])
+
+    def getPanel(self):
+    # necessaire pour handleOnItem de browser.py
+    # non appele
         pass
 
-
-  def afficheOptionnel(self):
-      # N a pas de parentQt. doit donc etre redefini
-      #print ('ds afficheOptionnel')
-      if self.editor.maConfiguration.closeOptionnel : return
-      if self.editor.widgetOptionnel!= None :
-        self.monOptionnel=self.editor.widgetOptionnel
-      else :
-        self.editor.inhibeSplitter=1
-        self.monOptionnel=MonWidgetOptionnel(self.editor)
-        self.editor.widgetOptionnel=self.monOptionnel
-        self.editor.splitter.addWidget(self.monOptionnel)
-        self.editor.ajoutOptionnel()
-        self.editor.inhibeSplitter=0
-      self.monOptionnel.vireTous()
-
-      
-      liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
-      self.monOptionnel.parentCommande=self
-      self.monOptionnel.titre(self.obj.nom)
-      self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
-      
-  def setValide(self):
-     Groupe.setValide(self)
-     for bouton in self.listeBoutonAChanger:
-         couleur=self.node.item.getIconName()
-         monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
-         bouton.setIcon(monIcone)
+    def donnePremier(self):
+        #print "dans donnePremier"
+        QApplication.processEvents()
+        if self.listeAffichageWidget != [] :
+            self.listeAffichageWidget[0].setFocus(7)
+        QApplication.processEvents()
+        #print self.focusWidget()
+
+
+    def focusNextPrevChild(self, next):
+        # on s assure que ce n est pas un chgt de fenetre
+        #print "je passe dans focusNextPrevChild"
+        if self.editor.fenetreCentraleAffichee != self : return True
+        f=self.focusWidget()
+
+        if f not in self.listeAffichageWidget :
+            i=0
+            while not hasattr (f,'AAfficher') :
+                if f==None :i=-1; break
+                f=f.parentWidget()
+            if hasattr(f,'AAfficher') : f=f.AAfficher
+            if i != -1 : i=self.listeAffichageWidget.index(f)
+        else :i=self.listeAffichageWidget.index(f)
+        if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe:
+            try :
+                self.listeAffichageWidget[1].setFocus(7)
+                w=self.focusWidget()
+                self.inhibe=1
+                w.focusPreviousChild()
+                self.inhibe=0
+                return True
+            except : pass
+
+        if i==0 and next==False and not self.inhibe:
+            if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
+                self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
+            self.listeAffichageWidget[-2].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+
+        if i==0 and next==True and not self.inhibe:
+            self.listeAffichageWidget[0].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+
+        if i>0 and next==False and not self.inhibe:
+            if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
+                self.listeAffichageWidget[i-1].setFocus(7)
+                return True
+        return QWidget.focusNextPrevChild(self, next)
+
+    def etablitOrdre(self):
+        # si on boucle on perd l'ordre
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+
+    def  afficheSuivant(self,f):
+        #print ('ds afficheSuivant')
+        try :
+            i=self.listeAffichageWidget.index(f)
+            next=i+1
+        except :
+            next=1
+        if (next==len(self.listeAffichageWidget) ): next =0
+        try :
+            self.listeAffichageWidget[next].setFocus(7)
+        except :
+            pass
+
+
+    def afficheOptionnel(self):
+        # N a pas de parentQt. doit donc etre redefini
+        #print ('ds afficheOptionnel')
+        if self.editor.maConfiguration.closeOptionnel : return
+        if self.editor.widgetOptionnel!= None :
+            self.monOptionnel=self.editor.widgetOptionnel
+        else :
+            self.editor.inhibeSplitter=1
+            self.monOptionnel=MonWidgetOptionnel(self.editor)
+            self.editor.widgetOptionnel=self.monOptionnel
+            self.editor.splitter.addWidget(self.monOptionnel)
+            self.editor.ajoutOptionnel()
+            self.editor.inhibeSplitter=0
+        self.monOptionnel.vireTous()
+
+
+        liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
+        self.monOptionnel.parentCommande=self
+        self.monOptionnel.titre(self.obj.nom)
+        self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
+
+    def setValide(self):
+        Groupe.setValide(self)
+        for bouton in self.listeBoutonAChanger:
+            couleur=self.node.item.getIconName()
+            monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
+            bouton.setIcon(monIcone)
 
 class MonWidgetNiveauFactTableau(MonWidgetNiveauFact):
-  def __init__(self,node,editor,definition,obj):
-      MonWidgetNiveauFact.__init__(self,node,editor,definition,obj)
-
-
+    def __init__(self,node,editor,definition,obj):
+        MonWidgetNiveauFact.__init__(self,node,editor,definition,obj)
index c698206a046770d34fc3295cc299df9d1c11656a..c3088b72d712ca1f8395c1b47ee28f0af657bca6 100644 (file)
@@ -27,67 +27,67 @@ from Extensions.i18n import tr
 from desWidgetOptionnel import Ui_WidgetOptionnel
 from .monGroupeOptionnel import MonGroupeOptionnel
 
-    
+
 # Import des panels
 class  MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
-  def __init__(self,parentQt):
-     #print ("dans init de monWidgetOptionnel ", parentQt )
-     QWidget.__init__(self,None)
-     self.setupUi(self)
-     self.dicoMCWidgetOptionnel={}
-     self.parentQt=parentQt
+    def __init__(self,parentQt):
+        #print ("dans init de monWidgetOptionnel ", parentQt )
+        QWidget.__init__(self,None)
+        self.setupUi(self)
+        self.dicoMCWidgetOptionnel={}
+        self.parentQt=parentQt
+
+    def afficheOptionnel(self,liste,liste_rouge,MC):
+        #print ('afficheOptionnel MonWidgetOptionnel',self, liste,MC.node.item.nom)
+        self.vireLesAutres(MC)
+
+        if MC.node.item.nom in self.dicoMCWidgetOptionnel :
+            #print (MC.node.item.nom)
+            self.dicoMCWidgetOptionnel[MC.node.item.nom].close()
+            self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
+            self.dicoMCWidgetOptionnel[MC.node.item.nom].deleteLater()
+            del self.dicoMCWidgetOptionnel[MC.node.item.nom]
+        if liste==[] : return
+        groupe = MonGroupeOptionnel(liste,liste_rouge,self,MC)
+        self.groupesOptionnelsLayout.insertWidget(0,groupe)
+        self.dicoMCWidgetOptionnel[MC.node.item.nom]=groupe
+        return groupe
 
-  def afficheOptionnel(self,liste,liste_rouge,MC):
-     #print ('afficheOptionnel MonWidgetOptionnel',self, liste,MC.node.item.nom)
-     self.vireLesAutres(MC)
-   
-     if MC.node.item.nom in self.dicoMCWidgetOptionnel :
-        #print (MC.node.item.nom)
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].close()
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].deleteLater()
-        del self.dicoMCWidgetOptionnel[MC.node.item.nom]
-     if liste==[] : return
-     groupe = MonGroupeOptionnel(liste,liste_rouge,self,MC)
-     self.groupesOptionnelsLayout.insertWidget(0,groupe)
-     self.dicoMCWidgetOptionnel[MC.node.item.nom]=groupe
-     return groupe
+    def vireLesAutres(self,MC):
+        #print( "je passe dans vireLesAutres")
+        genea =MC.obj.getGenealogie()
+        #print (genea)
+        for k in list(self.dicoMCWidgetOptionnel.keys()):
+            #print (k)
+            #if k not in genea :  print ( k)
+            if k not in genea :
+                self.dicoMCWidgetOptionnel[k].close()
+                del self.dicoMCWidgetOptionnel[k]
+        #print( "fin vireLesAutres")
 
-  def vireLesAutres(self,MC):
-      #print( "je passe dans vireLesAutres")
-      genea =MC.obj.getGenealogie()
-      #print (genea)
-      for k in list(self.dicoMCWidgetOptionnel.keys()):
-          #print (k)
-          #if k not in genea :  print ( k)
-          if k not in genea :  
-             self.dicoMCWidgetOptionnel[k].close()
-             del self.dicoMCWidgetOptionnel[k]
-      #print( "fin vireLesAutres")
-      
-  def vireTous(self):
-      for k in list(self.dicoMCWidgetOptionnel.keys()):
-          self.dicoMCWidgetOptionnel[k].close()
-          del self.dicoMCWidgetOptionnel[k]
+    def vireTous(self):
+        for k in list(self.dicoMCWidgetOptionnel.keys()):
+            self.dicoMCWidgetOptionnel[k].close()
+            del self.dicoMCWidgetOptionnel[k]
 
-  def afficheOptionnelVide(self):
-      self.GeneaLabel.setText("")
-      for k in list(self.dicoMCWidgetOptionnel.keys()):
+    def afficheOptionnelVide(self):
+        self.GeneaLabel.setText("")
+        for k in list(self.dicoMCWidgetOptionnel.keys()):
             self.dicoMCWidgetOptionnel[k].close()
             del self.dicoMCWidgetOptionnel[k]
 
-  def titre(self,MC):
-     if self.parentCommande.node.editor.maConfiguration.closeFrameRechercheCommande==True :
-        self.frameLabelCommande.close()
-        return
-     labeltext,fonte,couleur = self.parentCommande.node.item.getLabelText()
-     l=tr(labeltext)
-     li=[]
-     while len(l) > 25:
-         li.append(l[0:24])
-         l=l[24:]
-     li.append(l)
-     texte=""
-     for l in li : texte+=l+"\n"
-     texte=texte[0:-2]
-     self.GeneaLabel.setText(tr("Options pour \n") +texte)
+    def titre(self,MC):
+        if self.parentCommande.node.editor.maConfiguration.closeFrameRechercheCommande==True :
+            self.frameLabelCommande.close()
+            return
+        labeltext,fonte,couleur = self.parentCommande.node.item.getLabelText()
+        l=tr(labeltext)
+        li=[]
+        while len(l) > 25:
+            li.append(l[0:24])
+            l=l[24:]
+        li.append(l)
+        texte=""
+        for l in li : texte+=l+"\n"
+        texte=texte[0:-2]
+        self.GeneaLabel.setText(tr("Options pour \n") +texte)
index cb799fe523fed98204dbeba028891909257ebffc..d3bcac808a4200f106dd12a10a9ee9a62368c7d5 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desWidgetParam import Ui_WidgetParam
@@ -31,88 +31,88 @@ from PyQt5.QtGui import QIcon
 
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
-import Accas 
+import Accas
 import os, re
 import types
 
 pattern_name       = re.compile(r'^[^\d\W]\w*\Z')
 
-    
+
 # Import des panels
 
 class MonWidgetParam(QWidget,Ui_WidgetParam,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,commentaire):
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.setupUi(self)
-      self.editor=editor
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-
-      self.setIconePoubelle()
-      if not(self.node.item.object.isValid()) :
-         icon=QIcon(self.repIcon+"/ast-red-ball.png")
-         self.RBValide.setIcon(icon)
-
-      self.remplit()
-      #if self.editor.code in ['MAP','CARMELCND','CF'] : self.bCatalogue.close()
-      if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
-      else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
-
-      self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
-      self.lineEditNom.returnPressed.connect(self.LENomPressed)
-      self.bAvant.clicked.connect(self.afficheAvant)
-      self.bApres.clicked.connect(self.afficheApres)
-      self.bVerifie.clicked.connect(self.verifiePressed)
-
-      self.editor.fermeOptionnel()
-
-       
-  def afficheCatalogue(self):
-      self.node.tree.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.node.tree.racine.select()
-
-  def remplit(self):
-      nom=self.node.item.getNom()
-      self.lineEditNom.setText(nom)
-
-      valeur=self.node.item.getValeur()
-      if valeur == None : 
-         self.lineEditVal.clear()
-      elif type(valeur) == list :
-         texte="["
-         for l in valeur :
-           texte=texte+str(l) +","
-         texte=texte[0:-1]+"]"
-         self.lineEditVal.setText(texte)
-      else :
-         self.lineEditVal.setText(str(valeur))
-
-
-  def donnePremier(self):
-      self.lineEditVal.setFocus(7)
-
-  def LEvaleurPressed(self):
-      if self.verifiePressed() == False :
-         QMessageBox.warning( self,tr( "Modification Impossible"),tr( "le parametre n'est pas valide"))
-      nom=str(self.lineEditNom.text())
-      val=str(self.lineEditVal.text())
-      self.node.item.setNom(nom)
-      self.node.item.setValeur(val)
-      self.node.updateTexte()
-
-  def LENomPressed(self):
-      self.LEvaleurPressed()
-
-  def verifiePressed(self):
+    """
+    """
+    def __init__(self,node,editor,commentaire):
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.setupUi(self)
+        self.editor=editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+
+        self.setIconePoubelle()
+        if not(self.node.item.object.isValid()) :
+            icon=QIcon(self.repIcon+"/ast-red-ball.png")
+            self.RBValide.setIcon(icon)
+
+        self.remplit()
+        #if self.editor.code in ['MAP','CARMELCND','CF'] : self.bCatalogue.close()
+        if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
+        else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
+
+        self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
+        self.lineEditNom.returnPressed.connect(self.LENomPressed)
+        self.bAvant.clicked.connect(self.afficheAvant)
+        self.bApres.clicked.connect(self.afficheApres)
+        self.bVerifie.clicked.connect(self.verifiePressed)
+
+        self.editor.fermeOptionnel()
+
+
+    def afficheCatalogue(self):
+        self.node.tree.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.node.tree.racine.select()
+
+    def remplit(self):
+        nom=self.node.item.getNom()
+        self.lineEditNom.setText(nom)
+
+        valeur=self.node.item.getValeur()
+        if valeur == None :
+            self.lineEditVal.clear()
+        elif type(valeur) == list :
+            texte="["
+            for l in valeur :
+                texte=texte+str(l) +","
+            texte=texte[0:-1]+"]"
+            self.lineEditVal.setText(texte)
+        else :
+            self.lineEditVal.setText(str(valeur))
+
+
+    def donnePremier(self):
+        self.lineEditVal.setFocus(7)
+
+    def LEvaleurPressed(self):
+        if self.verifiePressed() == False :
+            QMessageBox.warning( self,tr( "Modification Impossible"),tr( "le parametre n'est pas valide"))
+        nom=str(self.lineEditNom.text())
+        val=str(self.lineEditVal.text())
+        self.node.item.setNom(nom)
+        self.node.item.setValeur(val)
+        self.node.updateTexte()
+
+    def LENomPressed(self):
+        self.LEvaleurPressed()
+
+    def verifiePressed(self):
         nomString=str(self.lineEditNom.text())
-        if not pattern_name.match(nomString) : 
-           self.LECommentaire.setText(nomString + tr(" n est pas un identifiant correct"))
-           return False
+        if not pattern_name.match(nomString) :
+            self.LECommentaire.setText(nomString + tr(" n est pas un identifiant correct"))
+            return False
 
         valString=str(self.lineEditVal.text())
 
@@ -120,29 +120,27 @@ class MonWidgetParam(QWidget,Ui_WidgetParam,FacultatifOuOptionnel):
         exec("from math import *", contexte)
         jdc=self.node.item.getJdc()
         for p in jdc.params :
-           try:
-              tp=p.nom+'='+str(repr(p.valeur))
-              exec(tp, contexte)
-           except exc :
-              pass
+            try:
+                tp=p.nom+'='+str(repr(p.valeur))
+                exec(tp, contexte)
+            except exc :
+                pass
 
         monTexte=nomString+"="+valString
         try :
-          exec(monTexte, contexte)
+            exec(monTexte, contexte)
         except (ValueError,TypeError, NameError,RuntimeError,ZeroDivisionError) as  exc:
-          self.LECommentaire.setText(tr("Valeur incorrecte: ")+str(exc))
-          return False
+            self.LECommentaire.setText(tr("Valeur incorrecte: ")+str(exc))
+            return False
         except :
-          self.LECommentaire.setText(tr("Valeur incorrecte "))
-          return False
+            self.LECommentaire.setText(tr("Valeur incorrecte "))
+            return False
 
         self.LECommentaire.setText(tr("Valeur correcte "))
         return True
 
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
+    def afficheApres(self):
+        self.node.selectApres()
 
+    def afficheAvant(self):
+        self.node.selectAvant()
index f31573291e868228dda573dd897f78d9eed40ca0..8992990cd20fc653c148c423a431e89353e5c9b9 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os,sys
 
 # Modules Eficas
 from Extensions.i18n import tr
-from .monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne 
+from .monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
 from .politiquesValidation          import PolitiquePlusieurs
 
 from six.moves import range
@@ -37,31 +37,29 @@ from PyQt5.QtWidgets  import  QScrollBar
 
 class MonWidgetPlusieursASSDIntoOrdonne (MonWidgetPlusieursIntoOrdonne):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.numLineEditEnCours=0
         MonWidgetPlusieursIntoOrdonne.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-       
 
-       
-  def prepareListeResultat(self):
-       for i in self.listeLE: i.close()
-       self.listeLE=[]
-       self.vScrollBar = self.scrollArea.verticalScrollBar()
-       self.listeAAfficher = self.node.item.getSdAvantDuBonType()
 
-       if len(self.listeAAfficher) == 0 :
-          self.ajoutLE(0)
-          return
-           
-         
-       if len(self.listeAAfficher)*30 > 400 : self.resize(self.width(),200)
-       else : self.resize(self.width(),len(self.listeAAfficher)*30)
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i)
-       for i in range(len(self.listeAAfficher)):
-           nomLE="lineEditVal"+str(i+1)
-           courant=getattr(self,nomLE)
-           courant.setText(str(self.listeAAfficher[i]))
-       self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
-       
-      
+
+    def prepareListeResultat(self):
+        for i in self.listeLE: i.close()
+        self.listeLE=[]
+        self.vScrollBar = self.scrollArea.verticalScrollBar()
+        self.listeAAfficher = self.node.item.getSdAvantDuBonType()
+
+        if len(self.listeAAfficher) == 0 :
+            self.ajoutLE(0)
+            return
+
+
+        if len(self.listeAAfficher)*30 > 400 : self.resize(self.width(),200)
+        else : self.resize(self.width(),len(self.listeAAfficher)*30)
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i)
+        for i in range(len(self.listeAAfficher)):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.setText(str(self.listeAAfficher[i]))
+        self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
index be44a11ac87c9cd0267e499b30f8ad39ee32f095..eb3081bdbb2e23e42d367aba0883e3ecebd76297 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types,os,sys
 
 from six.moves import range
-from PyQt5.QtGui     import QIcon 
+from PyQt5.QtGui     import QIcon
 from PyQt5.QtWidgets import QApplication, QMessageBox, QScrollArea
 from PyQt5.QtCore    import QTimer, QSize, Qt
 
@@ -35,7 +35,7 @@ from PyQt5.QtCore    import QTimer, QSize, Qt
 from Extensions.i18n import tr
 
 from InterfaceQT4.feuille                import Feuille
-from desWidgetPlusieursBase              import Ui_WidgetPlusieursBase 
+from desWidgetPlusieursBase              import Ui_WidgetPlusieursBase
 from InterfaceQT4.politiquesValidation   import PolitiquePlusieurs
 from InterfaceQT4.qtSaisie               import SaisieValeur
 from InterfaceQT4.gereListe              import GereListe
@@ -47,268 +47,268 @@ hauteurMax=253
 
 class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      #print "MonWidgetPlusieursBase", nom
-      self.inFocusOutEvent=False
-      self.nomLine="lineEditVal"
-      self.inInit=True
-      self.indexDernierLabel=0
-      self.numLineEditEnCours=0
-      self.listeAffichageWidget=[]
-      self.dictLE={}
-      Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      GereListe.__init__(self)
-      self.gereIconePlier()
-      self.BSelectFichier.clicked.connect(self.selectInFile)
-
-      repIcon=self.node.editor.appliEficas.repIcon
-      fichier=os.path.join(repIcon, 'arrow_up.png')
-      icon = QIcon(fichier)
-      self.RBHaut.setIcon(icon)
-      self.RBHaut.setIconSize(QSize(32, 32))
-      fichier2=os.path.join(repIcon, 'arrow_down.png')
-      icon2 = QIcon(fichier2)
-      self.RBBas.setIcon(icon2)
-      fichier3=os.path.join(repIcon, 'file-explorer.png')
-      icon3 = QIcon(fichier2)
-      self.BSelectFichier.setIcon(icon3)
-      self.BSelectFichier.setIconSize(QSize(32, 32))
-      icon=QIcon(self.repIcon+"/MoinsBleu.png")
-      self.RBMoins.setIcon(icon)
-      icon=QIcon(self.repIcon+"/PlusBleu.png")
-      self.RBPlus.setIcon(icon)
-      icon=QIcon(self.repIcon+"/verre-loupe-icone-6087-64.png")
-      self.RBVoisListe.setIcon(icon)
-
-
-      self.listeValeursCourantes=self.node.item.getListeValeurs()
-      if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7: 
-         hauteurMax=dicoLongueur[self.monSimpDef.max]
-      else :
-         hauteurMax=220
-      #   if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
-      self.resize(self.width(),hauteurMax)
-      self.setMinimumHeight(hauteurMax)
-      self.finCommentaireListe()
-      self.parentQt.commandesLayout.insertWidget(-1,self)
-      self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-      self.AAfficher=self.lineEditVal1
-      self.inInit=False
-      # PNPN a completer __ si tuple le type des tuples sinon le tuple
-      self.monCommentaireLabel.setText(self.finCommentaireListe())
-      self.scrollArea.leaveEvent = self.leaveEventScrollArea
-
-
-  def setValeurs(self):
-      self.vScrollBar = self.scrollArea.verticalScrollBar()
-      self.politique=PolitiquePlusieurs(self.node,self.editor)
-      # construction du min de valeur a entrer
-      if self.monSimpDef.max == "**"  : aConstruire=7
-      elif self.monSimpDef.max == float('inf'): aConstruire=7
-      else                            : aConstruire=self.monSimpDef.max
-
-      for i in range(1,aConstruire):
-          self.ajoutLineEdit()
-      QApplication.processEvents()
-      self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
-      self.listeValeursCourantes=self.node.item.getListeValeurs()
-      index=1
-      for valeur in self.listeValeursCourantes :
-           val=self.politique.getValeurTexte(valeur)
-           nomLineEdit="lineEditVal"+str(index)
-           if hasattr(self,nomLineEdit) : 
-              courant=getattr(self,nomLineEdit)
-              if 'R' in self.objSimp.definition.type and str(val) != repr(val) :  courant.setText(repr(val))
-              else                     :  courant.setText(str(val))
-              self.dictLE[index]=val
-           else :
-              self.ajoutLineEdit(val)
-           index=index+1
-      # ajout d'une ligne vide ou affichage commentaire
-      if self.indexDernierLabel < self.monSimpDef.max  : self.ajoutLineEdit()
-      else : self.scrollArea.setToolTip('nb max de valeurs atteint')
-      #self.adjustSize()
-      #self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
-       
-
-  def ajoutLineEdit(self,valeur=None,):
-      #print ('ajoutLineEdit plusieursBase')
-      #print ('self.indexDernierLabel', self.indexDernierLabel)
-      self.indexDernierLabel=self.indexDernierLabel+1
-      nomLineEdit="lineEditVal"+str(self.indexDernierLabel)
-      if hasattr(self,nomLineEdit) : 
-         self.indexDernierLabel=self.indexDernierLabel-1
-         return
-      nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel)
-      self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-      nouveauLE.setText("")
-      if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
-      else :                              nouveauLE.setStyleSheet("background:rgb(235,235,235)")
-      nouveauLE.setFrame(False)
-      nouveauLE.returnPressed.connect(self.changeValeur)
-
-      setattr(self,nomLineEdit,nouveauLE)
-      self.listeAffichageWidget.append(nouveauLE)
-      self.etablitOrdre()
-      if valeur != None : 
-         nouveauLE.setText(str(valeur))
-         self.dictLE[self.indexDernierLabel] = valeur
-      else : 
-         self.dictLE[self.indexDernierLabel] = None
-      # deux lignes pour que le ensureVisible fonctionne
-      self.estVisible=nouveauLE
-      if self.inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
-
-  def etablitOrdre(self):
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-      # si on boucle on perd l'ordre
-
-
-  def rendVisibleLigne(self):
-      QApplication.processEvents()
-      self.estVisible.setFocus()
-      self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
-      
-
-  def finCommentaire(self):
-      return self.finCommentaireListe()
-
-  def ajout1Valeur(self,valeur=None):
-      #print ('ajout1Valeur plusieursBase')
-      if valeur == None : return
-      liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
-      if validite == 0 : return
-      if liste ==[]    : return
-      listeVal=[]
-      for valeur in self.listeValeursCourantes : listeVal.append(valeur)
-      validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,-1,listeVal)
-      if (comm2 != "" and comm != None) : return comm2
-      if validite : 
-         self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
-         if len(self.listeValeursCourantes) > self.monSimpDef.min :
-            self.node.item.setValeur(self.listeValeursCourantes)
-            self.reaffiche()
-         return None
-      else :
-         return(comm2+" "+comm)
-        
-  def reaffiche(self):
-      # A priori, on ne fait rien
-      pass
-
-                
-  def ajoutNValeur(self,liste):
-      #print ('ajoutNValeur plusieursBase')
-  #----------------------------
-  # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
-  # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a 
-  # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
-
-           
-      listeFormatee=list(liste)
-
-      min,max=self.node.item.getMinMax()
-      if self.objSimp.valeur == None : listeComplete=listeFormatee
-      else : listeComplete =self.objSimp.valeur + listeFormatee
-
-      if len(listeComplete) > max : 
-           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
-           self.editor.afficheInfos(texte,Qt.red)
-           return
-
-      validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
-      if not validite : 
-           self.editor.affiche_infos(texte,Qt.red)
-           return
-
-      # on calcule le dernier lineedit rempli avant de changer la valeur
-      if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
-      else : indexDernierRempli=0
-
-      self.politique.recordValeur(listeComplete)
-
-      indexDernierRempli=0
-      while ( indexDernierRempli < len(liste) ) :
-         texte=liste[indexDernierRempli]
-         if indexDernierRempli < self.indexDernierLabel:
-            nomLineEdit="lineEditVal"+str(indexDernierRempli+1)
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        #print "MonWidgetPlusieursBase", nom
+        self.inFocusOutEvent=False
+        self.nomLine="lineEditVal"
+        self.inInit=True
+        self.indexDernierLabel=0
+        self.numLineEditEnCours=0
+        self.listeAffichageWidget=[]
+        self.dictLE={}
+        Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        GereListe.__init__(self)
+        self.gereIconePlier()
+        self.BSelectFichier.clicked.connect(self.selectInFile)
+
+        repIcon=self.node.editor.appliEficas.repIcon
+        fichier=os.path.join(repIcon, 'arrow_up.png')
+        icon = QIcon(fichier)
+        self.RBHaut.setIcon(icon)
+        self.RBHaut.setIconSize(QSize(32, 32))
+        fichier2=os.path.join(repIcon, 'arrow_down.png')
+        icon2 = QIcon(fichier2)
+        self.RBBas.setIcon(icon2)
+        fichier3=os.path.join(repIcon, 'file-explorer.png')
+        icon3 = QIcon(fichier2)
+        self.BSelectFichier.setIcon(icon3)
+        self.BSelectFichier.setIconSize(QSize(32, 32))
+        icon=QIcon(self.repIcon+"/MoinsBleu.png")
+        self.RBMoins.setIcon(icon)
+        icon=QIcon(self.repIcon+"/PlusBleu.png")
+        self.RBPlus.setIcon(icon)
+        icon=QIcon(self.repIcon+"/verre-loupe-icone-6087-64.png")
+        self.RBVoisListe.setIcon(icon)
+
+
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7:
+            hauteurMax=dicoLongueur[self.monSimpDef.max]
+        else :
+            hauteurMax=220
+        #   if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
+        self.resize(self.width(),hauteurMax)
+        self.setMinimumHeight(hauteurMax)
+        self.finCommentaireListe()
+        self.parentQt.commandesLayout.insertWidget(-1,self)
+        self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+        self.AAfficher=self.lineEditVal1
+        self.inInit=False
+        # PNPN a completer __ si tuple le type des tuples sinon le tuple
+        self.monCommentaireLabel.setText(self.finCommentaireListe())
+        self.scrollArea.leaveEvent = self.leaveEventScrollArea
+
+
+    def setValeurs(self):
+        self.vScrollBar = self.scrollArea.verticalScrollBar()
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        # construction du min de valeur a entrer
+        if self.monSimpDef.max == "**"  : aConstruire=7
+        elif self.monSimpDef.max == float('inf'): aConstruire=7
+        else                            : aConstruire=self.monSimpDef.max
+
+        for i in range(1,aConstruire):
+            self.ajoutLineEdit()
+        QApplication.processEvents()
+        self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        index=1
+        for valeur in self.listeValeursCourantes :
+            val=self.politique.getValeurTexte(valeur)
+            nomLineEdit="lineEditVal"+str(index)
+            if hasattr(self,nomLineEdit) :
+                courant=getattr(self,nomLineEdit)
+                if 'R' in self.objSimp.definition.type and str(val) != repr(val) :  courant.setText(repr(val))
+                else                     :  courant.setText(str(val))
+                self.dictLE[index]=val
+            else :
+                self.ajoutLineEdit(val)
+            index=index+1
+        # ajout d'une ligne vide ou affichage commentaire
+        if self.indexDernierLabel < self.monSimpDef.max  : self.ajoutLineEdit()
+        else : self.scrollArea.setToolTip('nb max de valeurs atteint')
+        #self.adjustSize()
+        #self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
+
+
+    def ajoutLineEdit(self,valeur=None,):
+        #print ('ajoutLineEdit plusieursBase')
+        #print ('self.indexDernierLabel', self.indexDernierLabel)
+        self.indexDernierLabel=self.indexDernierLabel+1
+        nomLineEdit="lineEditVal"+str(self.indexDernierLabel)
+        if hasattr(self,nomLineEdit) :
+            self.indexDernierLabel=self.indexDernierLabel-1
+            return
+        nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel)
+        self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
+        nouveauLE.setText("")
+        if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
+        else :                               nouveauLE.setStyleSheet("background:rgb(235,235,235)")
+        nouveauLE.setFrame(False)
+        nouveauLE.returnPressed.connect(self.changeValeur)
+
+        setattr(self,nomLineEdit,nouveauLE)
+        self.listeAffichageWidget.append(nouveauLE)
+        self.etablitOrdre()
+        if valeur != None :
+            nouveauLE.setText(str(valeur))
+            self.dictLE[self.indexDernierLabel] = valeur
+        else :
+            self.dictLE[self.indexDernierLabel] = None
+        # deux lignes pour que le ensureVisible fonctionne
+        self.estVisible=nouveauLE
+        if self.inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def etablitOrdre(self):
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+        # si on boucle on perd l'ordre
+
+
+    def rendVisibleLigne(self):
+        QApplication.processEvents()
+        self.estVisible.setFocus()
+        self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
+
+
+    def finCommentaire(self):
+        return self.finCommentaireListe()
+
+    def ajout1Valeur(self,valeur=None):
+        #print ('ajout1Valeur plusieursBase')
+        if valeur == None : return
+        liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
+        if validite == 0 : return
+        if liste ==[]    : return
+        listeVal=[]
+        for valeur in self.listeValeursCourantes : listeVal.append(valeur)
+        validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,-1,listeVal)
+        if (comm2 != "" and comm != None) : return comm2
+        if validite :
+            self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
+            if len(self.listeValeursCourantes) > self.monSimpDef.min :
+                self.node.item.setValeur(self.listeValeursCourantes)
+                self.reaffiche()
+            return None
+        else :
+            return(comm2+" "+comm)
+
+    def reaffiche(self):
+        # A priori, on ne fait rien
+        pass
+
+
+    def ajoutNValeur(self,liste):
+        #print ('ajoutNValeur plusieursBase')
+    #----------------------------
+    # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
+    # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a
+    # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
+
+
+        listeFormatee=list(liste)
+
+        min,max=self.node.item.getMinMax()
+        if self.objSimp.valeur == None : listeComplete=listeFormatee
+        else : listeComplete =self.objSimp.valeur + listeFormatee
+
+        if len(listeComplete) > max :
+            texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
+            self.editor.afficheInfos(texte,Qt.red)
+            return
+
+        validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
+        if not validite :
+            self.editor.affiche_infos(texte,Qt.red)
+            return
+
+        # on calcule le dernier lineedit rempli avant de changer la valeur
+        if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
+        else : indexDernierRempli=0
+
+        self.politique.recordValeur(listeComplete)
+
+        indexDernierRempli=0
+        while ( indexDernierRempli < len(liste) ) :
+            texte=liste[indexDernierRempli]
+            if indexDernierRempli < self.indexDernierLabel:
+                nomLineEdit="lineEditVal"+str(indexDernierRempli+1)
+                courant=getattr(self,nomLineEdit)
+                courant.setText(str(texte))
+            else :
+                self.ajoutLineEdit(texte)
+            indexDernierRempli = indexDernierRempli + 1
+
+
+    def changeValeur(self,changeDePlace=True,oblige=False):
+        #print ('achangeValeur plusieursBase')
+        donneFocus=None
+        derniereValeur=None
+        self.listeValeursCourantes = []
+        fin=self.indexDernierLabel
+        for i in range (1, fin):
+            nomLineEdit="lineEditVal"+str(i)
             courant=getattr(self,nomLineEdit)
-            courant.setText(str(texte))
-         else : 
-            self.ajoutLineEdit(texte)
-         indexDernierRempli = indexDernierRempli + 1
-        
-
-  def changeValeur(self,changeDePlace=True,oblige=False):
-      #print ('achangeValeur plusieursBase')
-      donneFocus=None
-      derniereValeur=None
-      self.listeValeursCourantes = []
-      fin=self.indexDernierLabel
-      for i in range (1, fin):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.text()
-          lval=valeur.split(',')
-          if len (lval) > 1 : 
-             msgBox=QMessageBox()
-             msgBox.setText("separator ',' ")
-             msgBox.setInformativeText("Do you want to enter " + str (lval) + "?")
-             msgBox.setStandardButtons( QMessageBox.Ok | QMessageBox.Cancel)
-             msgBox.setDefaultButton(QMessageBox.Ok)
-             ret = msgBox.exec_()
-             if ret != 1024 : 
-                courant.setText("") 
-                return
-             courant.setText(lval[0])
-             self.ajoutNValeur(lval[1:])
-             self.listeValeursCourantes = []
-
-
-      for i in range (1, self.indexDernierLabel+1):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.text()
-          if valeur != None and valeur != "" : 
-             commentaire=self.ajout1Valeur(valeur)
-             if (commentaire != None ):
-                 self.editor.afficheInfos(commentaire,Qt.red)
-                 courant.setText("")
-                 donneFocus=courant
-                 self.reaffiche()
-                 return
-             else :
-                 self.editor.afficheInfos("")
-          elif donneFocus==None : donneFocus=courant
-
-      nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel)
-      dernier=getattr(self,nomDernierLineEdit)
-      derniereValeur=dernier.text()
-      if changeDePlace:
-         if donneFocus != None : 
-           donneFocus.setFocus()
-           self.scrollArea.ensureWidgetVisible(donneFocus)
-         elif self.indexDernierLabel < self.monSimpDef.max  : 
-           self.ajoutLineEdit()
-      if self.listeValeursCourantes == [] : return
-      min,max = self.node.item.getMinMax()
-      if len(self.listeValeursCourantes) < self.monSimpDef.min  :
-        self.editor.afficheInfos(tr('nb min de valeurs : ')+str( self.monSimpDef.min))
-      if len(self.listeValeursCourantes) < min and oblige==True: return
-      if len(self.listeValeursCourantes) > max : return
-      retour=self.node.item.setValeur(self.listeValeursCourantes)
-      if len(self.listeValeursCourantes) == self.monSimpDef.max  :
-        self.editor.afficheInfos(tr('nb max de valeurs atteint'))
-      self.setValide()
-      self.reaffiche()
-
-  def leaveEventScrollArea(self,event):
-      #print ('achangeValeur plusieursBase')
-      self.changeValeur(changeDePlace=False)
-      QScrollArea.leaveEvent(self.scrollArea,event)
+            valeur=courant.text()
+            lval=valeur.split(',')
+            if len (lval) > 1 :
+                msgBox=QMessageBox()
+                msgBox.setText("separator ',' ")
+                msgBox.setInformativeText("Do you want to enter " + str (lval) + "?")
+                msgBox.setStandardButtons( QMessageBox.Ok | QMessageBox.Cancel)
+                msgBox.setDefaultButton(QMessageBox.Ok)
+                ret = msgBox.exec_()
+                if ret != 1024 :
+                    courant.setText("")
+                    return
+                courant.setText(lval[0])
+                self.ajoutNValeur(lval[1:])
+                self.listeValeursCourantes = []
+
+
+        for i in range (1, self.indexDernierLabel+1):
+            nomLineEdit="lineEditVal"+str(i)
+            courant=getattr(self,nomLineEdit)
+            valeur=courant.text()
+            if valeur != None and valeur != "" :
+                commentaire=self.ajout1Valeur(valeur)
+                if (commentaire != None ):
+                    self.editor.afficheInfos(commentaire,Qt.red)
+                    courant.setText("")
+                    donneFocus=courant
+                    self.reaffiche()
+                    return
+                else :
+                    self.editor.afficheInfos("")
+            elif donneFocus==None : donneFocus=courant
+
+        nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel)
+        dernier=getattr(self,nomDernierLineEdit)
+        derniereValeur=dernier.text()
+        if changeDePlace:
+            if donneFocus != None :
+                donneFocus.setFocus()
+                self.scrollArea.ensureWidgetVisible(donneFocus)
+            elif self.indexDernierLabel < self.monSimpDef.max  :
+                self.ajoutLineEdit()
+        if self.listeValeursCourantes == [] : return
+        min,max = self.node.item.getMinMax()
+        if len(self.listeValeursCourantes) < self.monSimpDef.min  :
+            self.editor.afficheInfos(tr('nb min de valeurs : ')+str( self.monSimpDef.min))
+        if len(self.listeValeursCourantes) < min and oblige==True: return
+        if len(self.listeValeursCourantes) > max : return
+        retour=self.node.item.setValeur(self.listeValeursCourantes)
+        if len(self.listeValeursCourantes) == self.monSimpDef.max  :
+            self.editor.afficheInfos(tr('nb max de valeurs atteint'))
+        self.setValide()
+        self.reaffiche()
+
+    def leaveEventScrollArea(self,event):
+        #print ('achangeValeur plusieursBase')
+        self.changeValeur(changeDePlace=False)
+        QScrollArea.leaveEvent(self.scrollArea,event)
 
 # Avertissement quand on quitte le widget
index fb6bc2bbf70d3f7b2073ab8d6787fc779f4bf488..056cf3e52145682b91a8abacf5f3d5cc14c8f1a8 100644 (file)
@@ -30,103 +30,103 @@ from copy import copy,deepcopy
 from PyQt5.QtCore import Qt
 
 
-      
+
 class MonWidgetPlusieursCreeUserAssd ( MonWidgetPlusieursBase):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-    MonWidgetPlusieursBase. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-    self.etablitOrdre()
-    self.scrollArea.leaveEvent = self.leaveEventScrollArea
-    self.RBHaut.close()
-    self.RBBas.close()
-      
-  def ajout1Valeur(self,valeur=None):
-    if not valeur in list(self.dictValeurs.keys()):
-       validite,commentaire=self.objSimp.creeUserASSDetSetValeur(valeur)
-       MonWidgetPlusieursBase.ajout1Valeur(self,valeur)
-
-  def changeValeur(self,changeDePlace=False,oblige=False ):
-    #print ('dans changeValeur du CreeUserAssd', changeDePlace, self.numLineEditEnCours)
-    #import traceback
-    #traceback.print_stack()
-    self.changeUnLineEdit=False
-    valeur = self.lineEditEnCours.text()
-    if self.numLineEditEnCours in list(self.dictLE.keys()) :
-       oldValeurUserAssd = self.dictLE[self.numLineEditEnCours] 
-       if oldValeurUserAssd == None or oldValeurUserAssd == "" : 
-          enCreation = True
-          oldValeurUserAssd == True
-       else : enCreation = False
-    else                         : 
-       enCreation     = True
-       oldValeurUserAssd =  None
-
-    if oldValeurUserAssd  and oldValeurUserAssd.nom == valeur : 
-       self.selectionneNext()
-       return
-
-    if valeur != "" :
-       if not enCreation :  
-          validite, commentaire=self.node.item.renommeSdCreeDsListe(oldValeurUserAssd,valeur)
-          if commentaire != "" and not validite:
-             self.editor.afficheInfos(commentaire,Qt.red)
-             self.lineEditEnCours.setText(oldValeurUserAssd.nom)
-          nomDernierLineEdit="lineEditVal"+str(self.numLineEditEnCours+1)
-          dernier=getattr(self,nomDernierLineEdit)
-          dernier.setFocus()
-          return
-  
-       validite, objASSD, commentaire=self.objSimp.creeUserASSD(valeur)
-       if commentaire != "" and not validite:
-          self.editor.afficheInfos(commentaire,Qt.red)
-          self.lineEditEnCours.setText("")
-          if objASSD : objASSD.supprime(self.objSimp)
-          return
-    else:
-       validite = 1
-       objASSD=None
-       commentaire = ""
-
-    # on relit tout pour tenir compte des lignes blanches 
-    oldValeur=self.objSimp.valeur
-    liste=[]
-    for i in range (1, self.indexDernierLabel+1):
-       if i == self.numLineEditEnCours  and objASSD : liste.append(objASSD)
-       elif self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
-    validite=self.node.item.setValeur(liste)
-    if not validite :
-      self.objSimp.valeur=oldValeur
-      self.objSimp.state='changed'
-      self.setValide()
-      if objASSD : objASSD.supprime(self.objSimp)
-      self.lineEditEnCours.setText(oldValeurUserASSD.nom)
-      return
-
-    validite=self.node.item.isValid()
-    if validite : 
-       self.dictLE[self.numLineEditEnCours] = objASSD
-       self.node.item.rattacheUserASSD(objASSD)
-       if self.indexDernierLabel < len(liste)  : self.ajoutLineEdit()
-       nomDernierLineEdit="lineEditVal"+str(self.numLineEditEnCours+1)
-       self.listeValeursCourantes=liste
-       dernier=getattr(self,nomDernierLineEdit)
-       dernier.setFocus()
-    else : 
-       self.editor.afficheInfos('ajout impossible' ,Qt.red)
-       if objASSD : objASSD.supprime(self.objSimp)
-       self.lineEditEnCours.setText("")
-    self.parentQt.propageChange(self.objSimp.definition.type[0],self)
-
-  def selectionneDernier(self):
-    index=len(self.listeValeursCourantes)
-    self.listeAffichageWidget[index].setFocus()
-
-  def leaveEventScrollArea(self,event):
-    pass
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        MonWidgetPlusieursBase. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        self.etablitOrdre()
+        self.scrollArea.leaveEvent = self.leaveEventScrollArea
+        self.RBHaut.close()
+        self.RBBas.close()
+
+    def ajout1Valeur(self,valeur=None):
+        if not valeur in list(self.dictValeurs.keys()):
+            validite,commentaire=self.objSimp.creeUserASSDetSetValeur(valeur)
+            MonWidgetPlusieursBase.ajout1Valeur(self,valeur)
+
+    def changeValeur(self,changeDePlace=False,oblige=False ):
+        #print ('dans changeValeur du CreeUserAssd', changeDePlace, self.numLineEditEnCours)
+        #import traceback
+        #traceback.print_stack()
+        self.changeUnLineEdit=False
+        valeur = self.lineEditEnCours.text()
+        if self.numLineEditEnCours in list(self.dictLE.keys()) :
+            oldValeurUserAssd = self.dictLE[self.numLineEditEnCours]
+            if oldValeurUserAssd == None or oldValeurUserAssd == "" :
+                enCreation = True
+                oldValeurUserAssd == True
+            else : enCreation = False
+        else                         :
+            enCreation     = True
+            oldValeurUserAssd =  None
+
+        if oldValeurUserAssd  and oldValeurUserAssd.nom == valeur :
+            self.selectionneNext()
+            return
+
+        if valeur != "" :
+            if not enCreation :
+                validite, commentaire=self.node.item.renommeSdCreeDsListe(oldValeurUserAssd,valeur)
+                if commentaire != "" and not validite:
+                    self.editor.afficheInfos(commentaire,Qt.red)
+                    self.lineEditEnCours.setText(oldValeurUserAssd.nom)
+                nomDernierLineEdit="lineEditVal"+str(self.numLineEditEnCours+1)
+                dernier=getattr(self,nomDernierLineEdit)
+                dernier.setFocus()
+                return
+
+            validite, objASSD, commentaire=self.objSimp.creeUserASSD(valeur)
+            if commentaire != "" and not validite:
+                self.editor.afficheInfos(commentaire,Qt.red)
+                self.lineEditEnCours.setText("")
+                if objASSD : objASSD.supprime(self.objSimp)
+                return
+        else:
+            validite = 1
+            objASSD=None
+            commentaire = ""
+
+        # on relit tout pour tenir compte des lignes blanches
+        oldValeur=self.objSimp.valeur
+        liste=[]
+        for i in range (1, self.indexDernierLabel+1):
+            if i == self.numLineEditEnCours  and objASSD : liste.append(objASSD)
+            elif self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
+        validite=self.node.item.setValeur(liste)
+        if not validite :
+            self.objSimp.valeur=oldValeur
+            self.objSimp.state='changed'
+            self.setValide()
+            if objASSD : objASSD.supprime(self.objSimp)
+            self.lineEditEnCours.setText(oldValeurUserASSD.nom)
+            return
+
+        validite=self.node.item.isValid()
+        if validite :
+            self.dictLE[self.numLineEditEnCours] = objASSD
+            self.node.item.rattacheUserASSD(objASSD)
+            if self.indexDernierLabel < len(liste)  : self.ajoutLineEdit()
+            nomDernierLineEdit="lineEditVal"+str(self.numLineEditEnCours+1)
+            self.listeValeursCourantes=liste
+            dernier=getattr(self,nomDernierLineEdit)
+            dernier.setFocus()
+        else :
+            self.editor.afficheInfos('ajout impossible' ,Qt.red)
+            if objASSD : objASSD.supprime(self.objSimp)
+            self.lineEditEnCours.setText("")
+        self.parentQt.propageChange(self.objSimp.definition.type[0],self)
+
+    def selectionneDernier(self):
+        index=len(self.listeValeursCourantes)
+        self.listeAffichageWidget[index].setFocus()
+
+    def leaveEventScrollArea(self,event):
+        pass
 
 #  def echangeDeuxValeurs(self):
 #    self.changeUnLineEdit=False
-#    obj1=self.dictLE[self.num1] 
-#    obj2=self.dictLE[self.num2] 
+#    obj1=self.dictLE[self.num1]
+#    obj2=self.dictLE[self.num2]
 #    self.dictLE[self.num1]=obj2
 #    self.dictLE[self.num2]=obj1
 #    nomLineEdit=self.nomLine+str(self.num1)
@@ -138,48 +138,47 @@ class MonWidgetPlusieursCreeUserAssd ( MonWidgetPlusieursBase):
 #    if self.dictLE[self.num2] != None : courant.setText(self.dictLE[self.num2].nom)
 #    else : courant.setText("")
 #    liste=[]
-#    for i in list(self.dictLE.keys()): 
+#    for i in list(self.dictLE.keys()):
 #       if self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
 #    validite=self.node.item.setValeur(liste)
 #    self.listeValeursCourantes=liste
 #    courant.setFocus(True)
 
-  def descendLesLignes(self):
-    self.changeUnLineEdit=False
-    if self.numLineEditEnCours==self.indexDernierLabel : return
-    nouvelleValeur=None
-    for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
-       valeurAGarder=self.dictLE[i]
-       self.dictLE[i]=nouvelleValeur
-       nomLineEdit=self.nomLine+str(i)
-       courant=getattr(self,nomLineEdit)
-       if nouvelleValeur != None : courant.setText(nouvelleValeur.nom)
-       else : courant.setText("")
-       nouvelleValeur=valeurAGarder
-      
-
-  def moinsPushed(self):
-    if self.numLineEditEnCours == 0 : return
-    if self.indexDernierLabel == 0 : return
-    objASSD=self.dictLE[self.numLineEditEnCours]
-    if objASSD : objASSD.supprime(self.objSimp)
-    self.lineEditEnCours.setText("")
-    self.dictLE[self.numLineEditEnCours]=None
-
-    for i in range (self.numLineEditEnCours, self.indexDernierLabel-1):
-       self.dictLE[i]= self.dictLE[i+1]
-       nomLineEdit=self.nomLine+str(i)
-       courant=getattr(self,nomLineEdit)
-       if self.dictLE[i] != None : courant.setText(self.dictLE[i].nom)
-       else : courant.setText("")
-    nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-    courant=getattr(self,nomLineEdit)
-    courant.setText("")
-    self.dictLE[self.indexDernierLabel]=None
-    liste=[]
-    for i in list(self.dictLE.keys()): 
-       if self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
-    print (liste)
-    validite=self.node.item.setValeur(liste)
-    self.listeValeursCourantes=liste
-
+    def descendLesLignes(self):
+        self.changeUnLineEdit=False
+        if self.numLineEditEnCours==self.indexDernierLabel : return
+        nouvelleValeur=None
+        for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
+            valeurAGarder=self.dictLE[i]
+            self.dictLE[i]=nouvelleValeur
+            nomLineEdit=self.nomLine+str(i)
+            courant=getattr(self,nomLineEdit)
+            if nouvelleValeur != None : courant.setText(nouvelleValeur.nom)
+            else : courant.setText("")
+            nouvelleValeur=valeurAGarder
+
+
+    def moinsPushed(self):
+        if self.numLineEditEnCours == 0 : return
+        if self.indexDernierLabel == 0 : return
+        objASSD=self.dictLE[self.numLineEditEnCours]
+        if objASSD : objASSD.supprime(self.objSimp)
+        self.lineEditEnCours.setText("")
+        self.dictLE[self.numLineEditEnCours]=None
+
+        for i in range (self.numLineEditEnCours, self.indexDernierLabel-1):
+            self.dictLE[i]= self.dictLE[i+1]
+            nomLineEdit=self.nomLine+str(i)
+            courant=getattr(self,nomLineEdit)
+            if self.dictLE[i] != None : courant.setText(self.dictLE[i].nom)
+            else : courant.setText("")
+        nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+        courant=getattr(self,nomLineEdit)
+        courant.setText("")
+        self.dictLE[self.indexDernierLabel]=None
+        liste=[]
+        for i in list(self.dictLE.keys()):
+            if self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
+        print (liste)
+        validite=self.node.item.setValeur(liste)
+        self.listeValeursCourantes=liste
index 389e5111afdbf2d814b7909d2b41dae8ac72469e..ed14566cb8782bcff53e668426a15f0445e237ca 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os,sys,re
@@ -32,7 +32,7 @@ from PyQt5.QtGui  import QIcon, QBrush, QColor
 from Extensions.i18n import tr
 
 from .feuille                import Feuille
-from desWidgetPlusieursPlie import Ui_WidgetPlusieursPlie 
+from desWidgetPlusieursPlie import Ui_WidgetPlusieursPlie
 
 from .politiquesValidation   import PolitiquePlusieurs
 from .qtSaisie               import SaisieValeur
@@ -42,81 +42,81 @@ pattern_blanc = re.compile(r"^\s*$")
 
 class MonWidgetPlusieursPlie (Ui_WidgetPlusieursPlie,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print ("MonWidgetPlusieursBase", nom)
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.AAfficher=self.lineEditVal
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
-        if self.node.item.hasInto() : 
-           self.lineEditVal.setReadOnly(True)
-           self.lineEditVal.setStyleSheet("background:rgb(235,235,235);\n")
-           self.lineEditVal.setToolTip("Ensemble discret de valeurs possibles, pas de Saisie Manuelle")
-           #self.lineEditVal.setPen(QtGui.QColor(0,0,200))
-          #b=QBrush(Qt.DiagCrossPattern)
-           #b.setColor(QColor(255,100,0))
-           #self.lineEditVal.setBrush(b)
+        if self.node.item.hasInto() :
+            self.lineEditVal.setReadOnly(True)
+            self.lineEditVal.setStyleSheet("background:rgb(235,235,235);\n")
+            self.lineEditVal.setToolTip("Ensemble discret de valeurs possibles, pas de Saisie Manuelle")
+            #self.lineEditVal.setPen(QtGui.QColor(0,0,200))
+            #b=QBrush(Qt.DiagCrossPattern)
+            #b.setColor(QColor(255,100,0))
+            #self.lineEditVal.setBrush(b)
         else :
-           self.lineEditVal.returnPressed.connect(self.valeurEntree)
+            self.lineEditVal.returnPressed.connect(self.valeurEntree)
         self.BVisuListe.clicked.connect(self.selectWidgetDeplie)
 
 
-  def setValeurs(self):
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       if self.listeValeursCourantes != []  :  self.lineEditVal.setText(str(self.listeValeursCourantes))
-       else : self.lineEditVal.setText("")
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       return
-
-  def selectWidgetDeplie(self):
-      self.editor.listeDesListesOuvertes.add(self.node.item)
-      self.reaffichePourDeplier()
-
-  def valeurEntree(self):
-      valeurTexte=self.lineEditVal.text()
-      #print (valeurTexte[0])
-      #print (valeurTexte[-1])
-      if valeurTexte[0] == '[' or valeurTexte[0] == '('   : valeurTexte = valeurTexte[1:]
-      if valeurTexte[-1] == ']' or valeurTexte[-1] == ')' : valeurTexte = valeurTexte[:-1]
-      #print (valeurTexte)
-      listeValeursBrutes=valeurTexte.split(',')
-      if listeValeursBrutes == [] or listeValeursBrutes == None : 
-         self.lineEditVal.setText(str(self.listeValeursCourantes))
-         return
-      listeValeur=[]
-      for v in listeValeursBrutes: 
-          if v == None or pattern_blanc.match(v) : 
-             self.editor.afficheInfos(str(listeValeur)+'   Valeurs saisies incorrectes',Qt.red)
-             return
-          liste,validite=SaisieValeur.TraiteLEValeur(self,str(v))
-          if not validite : 
-             self.editor.afficheInfos(str(listeValeur) +'   Valeurs saisies incorrectes',Qt.red)
-             return
-          listeValeur.append(liste[0])
-      validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(listeValeur,-1,[])
-      if validite : 
-         self.node.item.setValeur(listeValeur)
-         self.node.item.isValid()
-         self.setValeurs()
-      else :
-         self.editor.afficheInfos(str(listeValeur) + '   ' +comm,Qt.red)
-         self.lineEditVal.setText('')
-       
+    def setValeurs(self):
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        if self.listeValeursCourantes != []  :  self.lineEditVal.setText(str(self.listeValeursCourantes))
+        else : self.lineEditVal.setText("")
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        return
+
+    def selectWidgetDeplie(self):
+        self.editor.listeDesListesOuvertes.add(self.node.item)
+        self.reaffichePourDeplier()
+
+    def valeurEntree(self):
+        valeurTexte=self.lineEditVal.text()
+        #print (valeurTexte[0])
+        #print (valeurTexte[-1])
+        if valeurTexte[0] == '[' or valeurTexte[0] == '('   : valeurTexte = valeurTexte[1:]
+        if valeurTexte[-1] == ']' or valeurTexte[-1] == ')' : valeurTexte = valeurTexte[:-1]
+        #print (valeurTexte)
+        listeValeursBrutes=valeurTexte.split(',')
+        if listeValeursBrutes == [] or listeValeursBrutes == None :
+            self.lineEditVal.setText(str(self.listeValeursCourantes))
+            return
+        listeValeur=[]
+        for v in listeValeursBrutes:
+            if v == None or pattern_blanc.match(v) :
+                self.editor.afficheInfos(str(listeValeur)+'   Valeurs saisies incorrectes',Qt.red)
+                return
+            liste,validite=SaisieValeur.TraiteLEValeur(self,str(v))
+            if not validite :
+                self.editor.afficheInfos(str(listeValeur) +'   Valeurs saisies incorrectes',Qt.red)
+                return
+            listeValeur.append(liste[0])
+        validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(listeValeur,-1,[])
+        if validite :
+            self.node.item.setValeur(listeValeur)
+            self.node.item.isValid()
+            self.setValeurs()
+        else :
+            self.editor.afficheInfos(str(listeValeur) + '   ' +comm,Qt.red)
+            self.lineEditVal.setText('')
+
 class MonWidgetPlusieursPlieASSD (MonWidgetPlusieursPlie):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetPlusieursPlie.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.lineEditVal.setReadOnly(True)
 
-  def setValeurs(self):
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       if self.listeValeursCourantes == []  :  self.lineEditVal.setText(""); return
-       txt="["
-       for elt in self.listeValeursCourantes :
+    def setValeurs(self):
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        if self.listeValeursCourantes == []  :  self.lineEditVal.setText(""); return
+        txt="["
+        for elt in self.listeValeursCourantes :
             txt= txt+ (str(elt)) + ","
-       txt= txt + "]"
-       self.lineEditVal.setText(txt)
+        txt= txt + "]"
+        self.lineEditVal.setText(txt)
 
-  def valeurEntree(self):
-      pass
+    def valeurEntree(self):
+        pass
index 3d1b7889cd9e89f0bf6fdc119132092cc1859313..4b9ce64e43d60a784e551e9dd0cb4ea2bf57c495 100644 (file)
@@ -20,9 +20,9 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import range
+    from builtins import object
 except : pass
 
 import types,os,sys
@@ -55,193 +55,193 @@ from Tuple10                            import Ui_Tuple10
 class TupleCustom(object) :
 #--------------------------
 
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------------------------------------
-      QWidget.__init__(self,parent)
-      self.setupUi(self)
-      self.tailleTuple=tailleTuple
-      self.parent=parent
-      self.parentQt=parentQt
-      self.valeur=[]
-      self.index=index
-      self.inFocusOutEvent=False
-
-
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         courant.num=index
-         courant.dansUnTuple=True
-         courant.returnPressed.connect(self.valueChange)
-         courant.numDsLaListe = i+1
-         courant.tupleCustomParent=self
-         courant.parentTuple = self
-
-
-  def valueChange(self):
-  #----------------------
-
-      listeVal=[]
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         val=str(courant.text())
-        
-         if str(val)=="" or val==None : 
-            if not self.inFocusOutEvent : courant.setFocus()
-            return
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------------------------------------
+        QWidget.__init__(self,parent)
+        self.setupUi(self)
+        self.tailleTuple=tailleTuple
+        self.parent=parent
+        self.parentQt=parentQt
+        self.valeur=[]
+        self.index=index
+        self.inFocusOutEvent=False
+
+
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal_"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.num=index
+            courant.dansUnTuple=True
+            courant.returnPressed.connect(self.valueChange)
+            courant.numDsLaListe = i+1
+            courant.tupleCustomParent=self
+            courant.parentTuple = self
+
+
+    def valueChange(self):
+    #----------------------
+
+        listeVal=[]
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal_"+str(i+1)
+            courant=getattr(self,nomLE)
+            val=str(courant.text())
+
+            if str(val)=="" or val==None :
+                if not self.inFocusOutEvent : courant.setFocus()
+                return
+
+            try :
+                valeur=eval(val,{})
+            except :
+                try :
+                    d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                    valeur=eval(val,d)
+                except :
+                    valeur=val
+            listeVal.append(valeur)
+        self.valeur=listeVal
+        self.parentQt.changeValeur()
+
+
+    def setValeur(self,value):
+    #----------------------
+
+        listeVal=[]
+        valeurNulle=True
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal_"+str(i+1)
+            courant=getattr(self,nomLE)
+            try :
+                if str(value[i]) != "" : valeurNulle=False
+            except :
+                pass
 
-         try :
-             valeur=eval(val,{})
-         except :
-           try :
-             d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-             valeur=eval(val,d)
-           except :
-             valeur=val
-         listeVal.append(valeur)
-      self.valeur=listeVal
-      self.parentQt.changeValeur()
-
-
-  def setValeur(self,value):
-  #----------------------
-
-      listeVal=[]
-      valeurNulle=True
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         try :
-           if str(value[i]) != "" : valeurNulle=False
-         except :
-           pass
-
-         try :
-           courant.setText(str(value[i]))
-         except :
-           courant.setText("")
-         val=str(courant.text())
-         try :
-           valeur=eval(val,{})
-         except :
-           try :
-             d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-             valeur=eval(val,d)
-           except :
-             valeur=val
-         listeVal.append(valeur)
-      if  valeurNulle == True : self.valeur=None
-      else                    : self.valeur=listeVal
-
-  def getValeurbad(self):
-  #----------------------
-      self.valeur=[]
-      vide=True
-      print (self.tailleTuple)
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         self.valeur.append(courant.valeur)
-         if courant.valeur!= None : vide = False 
-      if vide : self.valeur=[]
-      return self.valeur
-
-  def getValeur(self):
-  #----------------------
-      return self.valeur
-     
-
-  def text(self):
-  #--------------
-      return self.valeur
-
-  def setText(self,value):
-  #-----------------------
-      self.setValeur(value)
-
-  def clean(self):
-  #-------------------
-      self.valeur=None
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         courant.setText("")
-
-  def finCommentaire(self):
-  #-------------------
+            try :
+                courant.setText(str(value[i]))
+            except :
+                courant.setText("")
+            val=str(courant.text())
+            try :
+                valeur=eval(val,{})
+            except :
+                try :
+                    d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                    valeur=eval(val,d)
+                except :
+                    valeur=val
+            listeVal.append(valeur)
+        if  valeurNulle == True : self.valeur=None
+        else                    : self.valeur=listeVal
+
+    def getValeurbad(self):
+    #----------------------
+        self.valeur=[]
+        vide=True
+        print (self.tailleTuple)
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal_"+str(i+1)
+            courant=getattr(self,nomLE)
+            self.valeur.append(courant.valeur)
+            if courant.valeur!= None : vide = False
+        if vide : self.valeur=[]
+        return self.valeur
+
+    def getValeur(self):
+    #----------------------
+        return self.valeur
+
+
+    def text(self):
+    #--------------
+        return self.valeur
+
+    def setText(self,value):
+    #-----------------------
+        self.setValeur(value)
+
+    def clean(self):
+    #-------------------
+        self.valeur=None
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal_"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.setText("")
+
+    def finCommentaire(self):
+    #-------------------
         return self.finCommentaireListe()
 
 
 #-------------------------------------------------
 class TupleCustom2(QWidget,Ui_Tuple2,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-      if self.parentQt.editor.maConfiguration.closeParenthese :
-           self.label_5.close()
-           self.label_7.close()
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+        if self.parentQt.editor.maConfiguration.closeParenthese :
+            self.label_5.close()
+            self.label_7.close()
 
 
 #-------------------------------------------------
 class TupleCustom3(QWidget,Ui_Tuple3,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom4(QWidget,Ui_Tuple4,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom5(QWidget,Ui_Tuple5,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom6(QWidget,Ui_Tuple6,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom7(QWidget,Ui_Tuple7,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom8(QWidget,Ui_Tuple8,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom9(QWidget,Ui_Tuple9,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom10(QWidget,Ui_Tuple10,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-      if self.parentQt.editor.maConfiguration.closeParenthese :
-           self.label_5.close()
-           self.label_7.close()
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+        if self.parentQt.editor.maConfiguration.closeParenthese :
+            self.label_5.close()
+            self.label_7.close()
 
 
 
@@ -251,8 +251,8 @@ class TupleCustom10(QWidget,Ui_Tuple10,TupleCustom):
 class MonWidgetPlusieursTuple(Feuille,GereListe):
 # -------------------------------------------- #
 
-  def __init__(self, node, monSimpDef, nom, objSimp, parentQt, commande):
-  #-----------------------------------------------------
+    def __init__(self, node, monSimpDef, nom, objSimp, parentQt, commande):
+    #-----------------------------------------------------
 
         self.indexDernierLabel=0
         self.numLineEditEnCours=0
@@ -265,158 +265,158 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
         self.parentQt.commandesLayout.insertWidget(-1,self)
 
         #if sys.platform[0:5]!="linux":
-        if 1 : 
+        if 1 :
         #Pour MT
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'arrow_up.png')
-          icon = QIcon(fichier)
-          self.RBHaut.setIcon(icon)
-          self.RBHaut.setIconSize(QSize(32, 32))
-          fichier2=os.path.join(repIcon, 'arrow_down.png')
-          icon2 = QIcon(fichier2)
-          self.RBBas.setIcon(icon2)
-          fichier3=os.path.join(repIcon, 'file-explorer.png')
-          icon3 = QIcon(fichier3)
-          self.BSelectFichier.setIcon(icon3)
-          self.BSelectFichier.setIconSize(QSize(32, 32))
+            repIcon=self.node.editor.appliEficas.repIcon
+            fichier=os.path.join(repIcon, 'arrow_up.png')
+            icon = QIcon(fichier)
+            self.RBHaut.setIcon(icon)
+            self.RBHaut.setIconSize(QSize(32, 32))
+            fichier2=os.path.join(repIcon, 'arrow_down.png')
+            icon2 = QIcon(fichier2)
+            self.RBBas.setIcon(icon2)
+            fichier3=os.path.join(repIcon, 'file-explorer.png')
+            icon3 = QIcon(fichier3)
+            self.BSelectFichier.setIcon(icon3)
+            self.BSelectFichier.setIconSize(QSize(32, 32))
         self.BSelectFichier.clicked.connect(self.selectInFile)
-
-
-
-  def ajoutLineEdit(self,valeur=None,inInit=False):
-  #------------------------------------------------
-      self.indexDernierLabel=self.indexDernierLabel+1
-      nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-      if hasattr(self,nomLineEdit) :
-         self.indexDernierLabel=self.indexDernierLabel-1
-         return
-
-      nomCustomTuple='TupleCustom'+str(self.nbValeurs)
-      laClasseDuTuple=globals()[nomCustomTuple]
-      nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-
-      #if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-      #else                   : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-                 
-      self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-      setattr(self,nomLineEdit,nouveauLE)
-      if valeur != None : nouveauLE.setValeur(valeur)
-
-      for i in range(self.nbValeurs) :
-          num=i+1
-          nomLineEdit='lineEditVal_'+str(num)
-          lineEditVal=getattr(nouveauLE,nomLineEdit)
-          self.listeAffichageWidget.append(lineEditVal)
-      #self.listeAffichageWidget.append(nouveauLE.lineEditVal_1)
-      #self.listeAffichageWidget.append(nouveauLE.lineEditVal_2)
-      #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3)
-
-      self.etablitOrdre()
-
-      # deux lignes pour que le ensureVisible fonctionne
-      self.estVisible=nouveauLE.lineEditVal_1
-      if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
-
-  def etablitOrdre(self):
-  # ---------------------
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-
-
-  def setValeurs(self):
-  # ---------------------
-       if self.editor.code == 'PSEN' : self.RBListePush()
-       valeurs=self.node.item.getValeur()
-       min,max=self.node.item.getMinMax()
-       if max == "**" or max > 8 : aCreer= 8
-       else : aCreer=max 
-
-       if valeurs == () or valeurs == None :
-          for i in range(aCreer): self.ajoutLineEdit(inInit=True)
-          return
-
-       for v in valeurs:
-           self.ajoutLineEdit(v,inInit=True)
-
-       for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True)
-
-  def rendVisibleLigne(self):
-  # -------------------------
-      QApplication.processEvents()
-      self.estVisible.setFocus(True)
-      self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
-
-   
-  def changeValeur(self,changeDePlace=False,oblige=True):
-  # -----------------------------------------------------
-      #Pour compatibilite signature
-      #print ('dschangeValeur', self.indexDernierLabel)
-
-      aLeFocus=self.focusWidget()
-      listeComplete=[]
-      libre=False
-      #print (self.indexDernierLabel)
-      for i in range(self.indexDernierLabel) :
-          nom=self.nomLine+str(i+1)
-          courant=getattr(self,nom)
-          valeurTuple=courant.valeur
-          if valeurTuple == None or valeurTuple== "" or valeurTuple==[]: 
-             libre=True
-             continue
-          validite,comm,comm2,listeRetour= self.politique.ajoutTuple(valeurTuple,listeComplete)
-          if not validite:
-             if comm2 != '' : comm += " " + comm2
-             self.editor.afficheInfos(comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
-             return
-          listeComplete.append(tuple(courant.valeur))
-      #print ('listeComplete', listeComplete)
-      if listeComplete == [] : listeComplete=None
-      self.node.item.setValeur(listeComplete)
-
-      if changeDePlace : return
-      min,max=self.node.item.getMinMax()
-      if self.indexDernierLabel == max  : self.editor.afficheInfos(tr('Nb maximum de valeurs atteint'))
-      if self.indexDernierLabel < max and libre==False :
-          self.ajoutLineEdit()
-          self.listeAffichageWidget[-2].setFocus(True)
-      else :
-         try :
-           QApplication.processEvents()
-           w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1]
-           w.setFocus(True)
-           self.scrollArea.ensureWidgetVisible(w,0,0)
-         except :
-           pass
-          
-  def echange(self,num1,num2):
-       # on donne le focus au a celui ou on a bouge
-       # par convention le 2
-       nomLineEdit=self.nomLine+str(num1)
-       courant=getattr(self,nomLineEdit)
-       valeurAGarder=courant.getValeur()
-       nomLineEdit2=self.nomLine+str(num2)
-       courant2=getattr(self,nomLineEdit2)
-       courant.setText(courant2.text())
-       courant2.setText(valeurAGarder)
-       self.changeValeur(changeDePlace=True)
-       self.numLineEditEnCours=num2
-       self.lineEditEnCours=courant2
-       courant2.lineEditVal_1.setFocus(True)
-
-  def ajoutNValeur(self,liste):
-  #----------------------------
-  # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
-  # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a 
-  # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
+
+
+
+
+    def ajoutLineEdit(self,valeur=None,inInit=False):
+    #------------------------------------------------
+        self.indexDernierLabel=self.indexDernierLabel+1
+        nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+        if hasattr(self,nomLineEdit) :
+            self.indexDernierLabel=self.indexDernierLabel-1
+            return
+
+        nomCustomTuple='TupleCustom'+str(self.nbValeurs)
+        laClasseDuTuple=globals()[nomCustomTuple]
+        nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+
+        #if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+        #else                   : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+
+        self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
+        setattr(self,nomLineEdit,nouveauLE)
+        if valeur != None : nouveauLE.setValeur(valeur)
+
+        for i in range(self.nbValeurs) :
+            num=i+1
+            nomLineEdit='lineEditVal_'+str(num)
+            lineEditVal=getattr(nouveauLE,nomLineEdit)
+            self.listeAffichageWidget.append(lineEditVal)
+        #self.listeAffichageWidget.append(nouveauLE.lineEditVal_1)
+        #self.listeAffichageWidget.append(nouveauLE.lineEditVal_2)
+        #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3)
+
+        self.etablitOrdre()
+
+        # deux lignes pour que le ensureVisible fonctionne
+        self.estVisible=nouveauLE.lineEditVal_1
+        if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def etablitOrdre(self):
+    # ---------------------
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+
+
+    def setValeurs(self):
+    # ---------------------
+        if self.editor.code == 'PSEN' : self.RBListePush()
+        valeurs=self.node.item.getValeur()
+        min,max=self.node.item.getMinMax()
+        if max == "**" or max > 8 : aCreer= 8
+        else : aCreer=max
+
+        if valeurs == () or valeurs == None :
+            for i in range(aCreer): self.ajoutLineEdit(inInit=True)
+            return
+
+        for v in valeurs:
+            self.ajoutLineEdit(v,inInit=True)
+
+        for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True)
+
+    def rendVisibleLigne(self):
+    # -------------------------
+        QApplication.processEvents()
+        self.estVisible.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
+
+
+    def changeValeur(self,changeDePlace=False,oblige=True):
+    # -----------------------------------------------------
+        #Pour compatibilite signature
+        #print ('dschangeValeur', self.indexDernierLabel)
+
+        aLeFocus=self.focusWidget()
+        listeComplete=[]
+        libre=False
+        #print (self.indexDernierLabel)
+        for i in range(self.indexDernierLabel) :
+            nom=self.nomLine+str(i+1)
+            courant=getattr(self,nom)
+            valeurTuple=courant.valeur
+            if valeurTuple == None or valeurTuple== "" or valeurTuple==[]:
+                libre=True
+                continue
+            validite,comm,comm2,listeRetour= self.politique.ajoutTuple(valeurTuple,listeComplete)
+            if not validite:
+                if comm2 != '' : comm += " " + comm2
+                self.editor.afficheInfos(comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
+                return
+            listeComplete.append(tuple(courant.valeur))
+        #print ('listeComplete', listeComplete)
+        if listeComplete == [] : listeComplete=None
+        self.node.item.setValeur(listeComplete)
+
+        if changeDePlace : return
+        min,max=self.node.item.getMinMax()
+        if self.indexDernierLabel == max  : self.editor.afficheInfos(tr('Nb maximum de valeurs atteint'))
+        if self.indexDernierLabel < max and libre==False :
+            self.ajoutLineEdit()
+            self.listeAffichageWidget[-2].setFocus(True)
+        else :
+            try :
+                QApplication.processEvents()
+                w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1]
+                w.setFocus(True)
+                self.scrollArea.ensureWidgetVisible(w,0,0)
+            except :
+                pass
+
+    def echange(self,num1,num2):
+        # on donne le focus au a celui ou on a bouge
+        # par convention le 2
+        nomLineEdit=self.nomLine+str(num1)
+        courant=getattr(self,nomLineEdit)
+        valeurAGarder=courant.getValeur()
+        nomLineEdit2=self.nomLine+str(num2)
+        courant2=getattr(self,nomLineEdit2)
+        courant.setText(courant2.text())
+        courant2.setText(valeurAGarder)
+        self.changeValeur(changeDePlace=True)
+        self.numLineEditEnCours=num2
+        self.lineEditEnCours=courant2
+        courant2.lineEditVal_1.setFocus(True)
+
+    def ajoutNValeur(self,liste):
+    #----------------------------
+    # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
+    # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a
+    # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
 
         if len(liste)%self.nbValeurs != 0 :
-           texte="Nombre incorrect de valeurs"
-           self.editor.afficheInfos(tr(texte),Qt.red)
-           return
+            texte="Nombre incorrect de valeurs"
+            self.editor.afficheInfos(tr(texte),Qt.red)
+            return
 
         i=0
         longueur=len(liste)//self.nbValeurs
@@ -428,15 +428,15 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
         if self.objSimp.valeur == None : listeComplete=listeFormatee
         else : listeComplete =self.objSimp.valeur + listeFormatee
 
-        if len(listeComplete) > max : 
-           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
-           self.editor.afficheInfos(texte,Qt.red)
-           return
+        if len(listeComplete) > max :
+            texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
+            self.editor.afficheInfos(texte,Qt.red)
+            return
 
         validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
-        if not validite : 
-           self.editor.afficheInfos(comm+comm2,Qt.red)
-           return
+        if not validite :
+            self.editor.afficheInfos(comm+comm2,Qt.red)
+            return
 
         # on calcule le dernier lineedit rempli avant de changer la valeur
         if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
@@ -446,101 +446,100 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
 
         while ( i < len(liste) ) :
             try :
-              t=tuple(liste[i:i+self.nbValeurs])
+                t=tuple(liste[i:i+self.nbValeurs])
             except:
-              t=tuple(liste[i:len(liste)])
+                t=tuple(liste[i:len(liste)])
             i=i+self.nbValeurs
             if indexDernierRempli < self.indexDernierLabel:
 
-               nomLEARemplir=self.nomLine+str(indexDernierRempli+1)
-               LEARemplir=getattr(self,nomLEARemplir) 
-               for n in range(self.nbValeurs) :
-                  nomLineEdit='lineEditVal_'+str(n+1)
-                  lineEditVal=getattr(LEARemplir,nomLineEdit)
-                  lineEditVal.setText(str(t[n]))
-            else : 
-               # ne pas appeler ajoutLineEdit(t,False ) pb de boucle pb du a etablitOrdre et a listeWidgetAffichage qui bouge
-               self.indexDernierLabel=self.indexDernierLabel+1
-               nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-
-               nomCustomTuple='TupleCustom'+str(self.nbValeurs)
-               laClasseDuTuple=globals()[nomCustomTuple]
-               nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-                 
-               self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-               setattr(self,nomLineEdit,nouveauLE)
-               nouveauLE.setValeur(t)
-
-               for n in range(self.nbValeurs) :
-                  nomLineEdit='lineEditVal_'+str(n+1)
-                  lineEditVal=getattr(nouveauLE,nomLineEdit)
-                  self.listeAffichageWidget.append(lineEditVal)
+                nomLEARemplir=self.nomLine+str(indexDernierRempli+1)
+                LEARemplir=getattr(self,nomLEARemplir)
+                for n in range(self.nbValeurs) :
+                    nomLineEdit='lineEditVal_'+str(n+1)
+                    lineEditVal=getattr(LEARemplir,nomLineEdit)
+                    lineEditVal.setText(str(t[n]))
+            else :
+                # ne pas appeler ajoutLineEdit(t,False ) pb de boucle pb du a etablitOrdre et a listeWidgetAffichage qui bouge
+                self.indexDernierLabel=self.indexDernierLabel+1
+                nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+
+                nomCustomTuple='TupleCustom'+str(self.nbValeurs)
+                laClasseDuTuple=globals()[nomCustomTuple]
+                nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+
+                self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
+                setattr(self,nomLineEdit,nouveauLE)
+                nouveauLE.setValeur(t)
+
+                for n in range(self.nbValeurs) :
+                    nomLineEdit='lineEditVal_'+str(n+1)
+                    lineEditVal=getattr(nouveauLE,nomLineEdit)
+                    self.listeAffichageWidget.append(lineEditVal)
             indexDernierRempli = indexDernierRempli+1
 
         self.etablitOrdre()
 
-        
-
-  def RBListePush(self):
-  #----------------------
-  # PN a rendre generique avec un truc tel prerempli
-  # pour l instant specifique PSEN
-
-      if self.editor.code == 'VP' : return
-      if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
-      if not hasattr(self.editor.readercata.cata,'sd_ligne') : self.editor.readercata.cata.sd_ligne=None
-      if not hasattr(self.editor.readercata.cata,'sd_generateur') : self.editor.readercata.cata.sd_generateur=None
-      if not hasattr(self.editor.readercata.cata,'sd_transfo') : self.editor.readercata.cata.sd_transfo=None
-      if not hasattr(self.editor.readercata.cata,'sd_charge') : self.editor.readercata.cata.sd_charge=None
-      if not hasattr(self.editor.readercata.cata,'sd_moteur') : self.editor.readercata.cata.sd_moteur=None
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_ligne :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'LineDico'):
-          for k in self.objSimp.jdc.LineDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_generateur :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'MachineDico'):
-          for k in self.objSimp.jdc.MachineDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_transfo :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'TransfoDico'):
-          for k in self.objSimp.jdc.TransfoDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_charge :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'LoadDico'):
-          for k in self.objSimp.jdc.LoadDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_moteur :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'MotorDico'):
-          for k in self.objSimp.jdc.MotorDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
 
+
+    def RBListePush(self):
+    #----------------------
+    # PN a rendre generique avec un truc tel prerempli
+    # pour l instant specifique PSEN
+
+        if self.editor.code == 'VP' : return
+        if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
+        if not hasattr(self.editor.readercata.cata,'sd_ligne') : self.editor.readercata.cata.sd_ligne=None
+        if not hasattr(self.editor.readercata.cata,'sd_generateur') : self.editor.readercata.cata.sd_generateur=None
+        if not hasattr(self.editor.readercata.cata,'sd_transfo') : self.editor.readercata.cata.sd_transfo=None
+        if not hasattr(self.editor.readercata.cata,'sd_charge') : self.editor.readercata.cata.sd_charge=None
+        if not hasattr(self.editor.readercata.cata,'sd_moteur') : self.editor.readercata.cata.sd_moteur=None
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_ligne :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'LineDico'):
+                for k in self.objSimp.jdc.LineDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_generateur :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'MachineDico'):
+                for k in self.objSimp.jdc.MachineDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_transfo :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'TransfoDico'):
+                for k in self.objSimp.jdc.TransfoDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_charge :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'LoadDico'):
+                for k in self.objSimp.jdc.LoadDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_moteur :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'MotorDico'):
+                for k in self.objSimp.jdc.MotorDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
index 36dfee9fc7ecf9014582a7418dd9648d2423eaae..aad22ac99cd6a7c981388ad69efffb350b962f7f 100644 (file)
@@ -24,52 +24,51 @@ import types,os
 # Modules Eficas
 
 from .feuille                  import Feuille
-from .monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
-from desWidgetPlusieursTuple  import Ui_WidgetPlusieursTuple 
+from .monWidgetPlusieursTuple  import MonWidgetPlusieursTuple
+from desWidgetPlusieursTuple  import Ui_WidgetPlusieursTuple
 
 
 class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=2
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple3 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
 class MonWidgetPlusieursTuple4 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=4
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
 class MonWidgetPlusieursTuple5 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=5
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple6 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=6
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple7 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=7
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple8 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=8
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple9 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=9
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple10 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=10
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
index 569e56be69d165ef05201ad35c21d6233ba8728b..ed89bebd5be32eec6418c8e692a74e376f2c94d1 100644 (file)
@@ -21,7 +21,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -34,13 +34,13 @@ from PyQt5.QtWidgets  import  QWidget
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetRadioButton  import Ui_WidgetRadioButton 
+from desWidgetRadioButton  import Ui_WidgetRadioButton
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetRadioButtonCommun (Feuille):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.setMaxI()
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
@@ -52,101 +52,101 @@ class MonWidgetRadioButtonCommun (Feuille):
         self.maCommande.listeAffichageWidget.append(self.radioButton_1)
 
 
-  def setValeursApresBouton(self):
-      if self.objSimp.getValeur()==None : return
-      valeur=self.objSimp.getValeur()
-      if not(isinstance(valeur, str)) : valeur = str(valeur)
-      try :
-        self.dict_bouton[valeur].setChecked(True)
-        self.dict_bouton[valeur].setFocus(True)
-      except :
-        pass
-
-  def determineChoix(self):
-      self.horizontalLayout.setAlignment(Qt.AlignLeft)
-      i=1
-      j=len(self.maListeDeValeur)
-      if j > self.maxI : 
-         print ("poumbadaboum")
-         return
-      while i < j+1 :
-         nomBouton="radioButton_"+str(i)
-         bouton=getattr(self,nomBouton)
-         valeur=self.maListeDeValeur[i-1]
-         if not(isinstance(valeur, str)) : valeur = str(valeur)
-         bouton.setText(tr(valeur))
-         self.dict_bouton[valeur]=bouton
-         bouton.clicked.connect(self.boutonclic)
-         bouton.keyPressEvent=self.keyPressEvent
-         setattr(self,nomBouton,bouton)
-         i=i+1
-      while i < self.maxI +1 :
-         nomBouton="radioButton_"+str(i)
-         bouton=getattr(self,nomBouton)
-         bouton.close()
-         i=i+1
-
-  def boutonclic(self):
-      for valeur in self.dict_bouton:
-          if self.dict_bouton[valeur].isChecked():
-             SaisieValeur.LEvaleurPressed(self,valeur)
-      self.reaffiche()
-
-
-  def keyPressEvent(self, event):
-    if event.key() == Qt.Key_Right : self.selectSuivant(); return
-    if event.key() == Qt.Key_Left  : self.selectPrecedent(); return
-    if event.key() == Qt.Key_Return or event.key() == Qt.Key_Space : self.checkFocused(); return
-    QWidget.keyPressEvent(self,event)
-
-  def selectSuivant(self):
-      aLeFocus=self.focusWidget()
-      nom=aLeFocus.objectName()[12:]
-      i=int(nom)+1
-      if i ==  len(self.maListeDeValeur) +1 : i=1
-      nomBouton="radioButton_"+str(i)
-      courant=getattr(self,nomBouton)
-      courant.setFocus(True)
-
-  def selectPrecedent(self):
-      aLeFocus=self.focusWidget()
-      nom=aLeFocus.objectName()[12:]
-      i=int(nom)-1
-      if i == 0 : i= len(self.maListeDeValeur)  
-      nomBouton="radioButton_"+str(i)
-      courant=getattr(self,nomBouton)
-      courant.setFocus(True)
-
-  def checkFocused(self):
-      aLeFocus=self.focusWidget()
-      nom=aLeFocus.objectName()[12:]
-      i=int(nom)
-      if i > 0 and i <= len(self.maListeDeValeur):
+    def setValeursApresBouton(self):
+        if self.objSimp.getValeur()==None : return
+        valeur=self.objSimp.getValeur()
+        if not(isinstance(valeur, str)) : valeur = str(valeur)
+        try :
+            self.dict_bouton[valeur].setChecked(True)
+            self.dict_bouton[valeur].setFocus(True)
+        except :
+            pass
+
+    def determineChoix(self):
+        self.horizontalLayout.setAlignment(Qt.AlignLeft)
+        i=1
+        j=len(self.maListeDeValeur)
+        if j > self.maxI :
+            print ("poumbadaboum")
+            return
+        while i < j+1 :
+            nomBouton="radioButton_"+str(i)
+            bouton=getattr(self,nomBouton)
+            valeur=self.maListeDeValeur[i-1]
+            if not(isinstance(valeur, str)) : valeur = str(valeur)
+            bouton.setText(tr(valeur))
+            self.dict_bouton[valeur]=bouton
+            bouton.clicked.connect(self.boutonclic)
+            bouton.keyPressEvent=self.keyPressEvent
+            setattr(self,nomBouton,bouton)
+            i=i+1
+        while i < self.maxI +1 :
+            nomBouton="radioButton_"+str(i)
+            bouton=getattr(self,nomBouton)
+            bouton.close()
+            i=i+1
+
+    def boutonclic(self):
+        for valeur in self.dict_bouton:
+            if self.dict_bouton[valeur].isChecked():
+                SaisieValeur.LEvaleurPressed(self,valeur)
+        self.reaffiche()
+
+
+    def keyPressEvent(self, event):
+        if event.key() == Qt.Key_Right : self.selectSuivant(); return
+        if event.key() == Qt.Key_Left  : self.selectPrecedent(); return
+        if event.key() == Qt.Key_Return or event.key() == Qt.Key_Space : self.checkFocused(); return
+        QWidget.keyPressEvent(self,event)
+
+    def selectSuivant(self):
+        aLeFocus=self.focusWidget()
+        nom=aLeFocus.objectName()[12:]
+        i=int(nom)+1
+        if i ==  len(self.maListeDeValeur) +1 : i=1
         nomBouton="radioButton_"+str(i)
         courant=getattr(self,nomBouton)
-        if not courant.isChecked():
-          courant.setChecked(True)
-          self.boutonclic()
+        courant.setFocus(True)
+
+    def selectPrecedent(self):
+        aLeFocus=self.focusWidget()
+        nom=aLeFocus.objectName()[12:]
+        i=int(nom)-1
+        if i == 0 : i= len(self.maListeDeValeur)
+        nomBouton="radioButton_"+str(i)
+        courant=getattr(self,nomBouton)
+        courant.setFocus(True)
+
+    def checkFocused(self):
+        aLeFocus=self.focusWidget()
+        nom=aLeFocus.objectName()[12:]
+        i=int(nom)
+        if i > 0 and i <= len(self.maListeDeValeur):
+            nomBouton="radioButton_"+str(i)
+            courant=getattr(self,nomBouton)
+            if not courant.isChecked():
+                courant.setChecked(True)
+                self.boutonclic()
 
 
 class MonWidgetRadioButton (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        #print "MonWidgetRadioButton ", self
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+            #print "MonWidgetRadioButton ", self
         if type(monSimpDef.into) ==types.FunctionType : self.maListeDeValeur=monSimpDef.into()
         else : self.maListeDeValeur=monSimpDef.into
 
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        
-  def setMaxI(self):
+
+    def setMaxI(self):
         self.maxI=3
 
 
 class MonWidgetRadioButtonSD (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidgetRadioButtonSD",self
         self.maListeDeValeur=node.item.getSdAvantDuBonType()
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=3
index e5c6de93750270f40a350e0c5c4679570d514c3b..dcccefdb839801d611b50cdd81499b0b18ee9156 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -31,7 +31,7 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSDCOInto     import Ui_WidgetSDCOInto 
+from desWidgetSDCOInto     import Ui_WidgetSDCOInto
 from .qtSaisie              import SaisieSDCO
 from .politiquesValidation  import PolitiqueUnique
 
@@ -39,7 +39,7 @@ from .politiquesValidation  import PolitiqueUnique
 
 class MonWidgetSDCOInto (Ui_WidgetSDCOInto,Feuille,SaisieSDCO):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "MonWidgetSDCOInto init"
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
@@ -47,25 +47,25 @@ class MonWidgetSDCOInto (Ui_WidgetSDCOInto,Feuille,SaisieSDCO):
         self.maCommande.listeAffichageWidget.append(self.LESDCO)
         self.AAficher=self.LESDCO
         self.initLBSDCO()
-       
+
         self.LESDCO.returnPressed.connect(self.LESDCOReturnPressed)
         self.LBSDCO.itemDoubleClicked.connect(self.LBSDCODoubleClicked )
 
-  def LESDCOReturnPressed(self) :
+    def LESDCOReturnPressed(self) :
         self.LBSDCO.clearSelection()
         SaisieSDCO.LESDCOReturnPressed(self)
 
 
-  def initLBSDCO(self):
+    def initLBSDCO(self):
         listeNomsSDCO = self.node.item.getSdAvantDuBonType()
         for aSDCO in listeNomsSDCO:
             self.LBSDCO.insertItem( 1,aSDCO)
         valeur = self.node.item.getValeur()
         if valeur  != "" and valeur != None :
-           self.LESDCO.setText(str(valeur.nom))
+            self.LESDCO.setText(str(valeur.nom))
 
 
-  def LBSDCODoubleClicked(self):
+    def LBSDCODoubleClicked(self):
         """
          Teste si la valeur fournie par l'utilisateur est une valeur permise :
           - si oui, l'enregistre
@@ -80,19 +80,17 @@ class MonWidgetSDCOInto (Ui_WidgetSDCOInto,Feuille,SaisieSDCO):
         valeur,validite=self.node.item.evalValeur(nomConcept)
         test = self.node.item.setValeur(valeur)
         if not test :
-          commentaire = tr("impossible d'evaluer : ") +  valeur
+            commentaire = tr("impossible d'evaluer : ") +  valeur
         elif validite:
-          commentaire = tr("Valeur du mot-clef enregistree")
-          if test_CO:
-             # il faut egalement propager la destruction de l'ancien concept
-             self.node.item.deleteValeurCo(valeur=anc_val)
-             self.node.item.object.etape.getType_produit(force=1)
-             self.node.item.object.etape.parent.resetContext()
-             self.LESDCO.setText(nomConcept)
+            commentaire = tr("Valeur du mot-clef enregistree")
+            if test_CO:
+                # il faut egalement propager la destruction de l'ancien concept
+                self.node.item.deleteValeurCo(valeur=anc_val)
+                self.node.item.object.etape.getType_produit(force=1)
+                self.node.item.object.etape.parent.resetContext()
+                self.LESDCO.setText(nomConcept)
         else :
-          commentaire = self.node.item.getCr()
-          self.reset_old_valeur(anc_val,mess=mess)
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire = self.node.item.getCr()
+            self.reset_old_valeur(anc_val,mess=mess)
+            self.editor.afficheInfos(commentaire,Qt.red)
         self.Commentaire.setText(tr(commentaire))
-
-
index 8a61db018a1b75760015cd15308bc1d4b380db5c..db0a9686aaaf9b4559f0ee707ad257fd8f6adc0d 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -31,14 +31,14 @@ from PyQt5.QtCore import  Qt
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSimpBase     import Ui_WidgetSimpBase 
+from desWidgetSimpBase     import Ui_WidgetSimpBase
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self,1)
         self.setFocusPolicy(Qt.StrongFocus)
@@ -51,66 +51,64 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
         self.lineEditVal.focusOutEvent=self.monFocusOutEvent
 
 
-  def monFocusInEvent(self,event):
-      self.editor.nodeEnCours = self
-      QLineEdit.focusInEvent(self.lineEditVal,event)
-
-  def monFocusOutEvent(self,event):
-      if self.oldValeurTexte != self.lineEditVal.text():
-         self.oldValeurTexte= self.lineEditVal.text()
-         self.LEvaleurPressed()
-      QLineEdit.focusOutEvent(self.lineEditVal,event)
-
-
-  def setValeurs(self):
-       #print ("dans setValeurs")
-       self.politique=PolitiqueUnique(self.node,self.editor)
-       valeur=self.node.item.getValeur()
-       valeurTexte=self.politique.getValeurTexte(valeur)
-       chaine=""
-
-       if valeurTexte != None :
-          from decimal import Decimal
-          if isinstance(valeurTexte,Decimal):
-             chaine=str(valeurTexte)
-          elif repr(valeurTexte.__class__).find("PARAMETRE") > 0:
-             chaine = repr(valeur)
-          else :
-             #PN ????
-             #try :
-             #  chaine=QString("").setNum(valeurTexte)
-             #except :
-             chaine=str(valeurTexte)
-       self.oldValeurTexte=chaine
-       self.lineEditVal.setText(chaine)
-
-
-  def finCommentaire(self):
-      mc = self.objSimp.definition
-      d_aides = { 'TXM' : tr(u"Une chaine de caracteres est attendue.  "),
-                  'R'   : tr(u"Un reel est attendu. "),
-                  'I'   : tr(u"Un entier est attendu.  "),
-                  'Matrice' : tr(u'Une Matrice est attendue.  '),
-                  'Fichier' : tr(u'Un fichier est attendu.  '),
-                  'FichierNoAbs' : tr(u'Un fichier est attendu.  '),
-                  'Repertoire' : tr(u'Un repertoire est attendu.  '),
-                  'FichierOuRepertoire' : tr(u'Un repertoire ou un fichier est attendu.  '),
-                  'Heure' : tr(u'Heure sous la forme HH:MM'),
-                  'Date' :  tr(u'Date sous la forme JJ/MM/AA')}
-      if mc.type[0] != type:
-         commentaire = d_aides.get(mc.type[0], tr("Type de base inconnu"))
-      else : commentaire=""
-      return commentaire
-
-
-  def LEvaleurPressed(self):
-      # pour les soucis d encoding
-      try :
-        if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
-      except : pass
-      SaisieValeur.LEvaleurPressed(self)
-      #self.parentQt.donneFocus()
-      self.setValeurs()
-      self.reaffiche()
-      
-
+    def monFocusInEvent(self,event):
+        self.editor.nodeEnCours = self
+        QLineEdit.focusInEvent(self.lineEditVal,event)
+
+    def monFocusOutEvent(self,event):
+        if self.oldValeurTexte != self.lineEditVal.text():
+            self.oldValeurTexte= self.lineEditVal.text()
+            self.LEvaleurPressed()
+        QLineEdit.focusOutEvent(self.lineEditVal,event)
+
+
+    def setValeurs(self):
+        #print ("dans setValeurs")
+        self.politique=PolitiqueUnique(self.node,self.editor)
+        valeur=self.node.item.getValeur()
+        valeurTexte=self.politique.getValeurTexte(valeur)
+        chaine=""
+
+        if valeurTexte != None :
+            from decimal import Decimal
+            if isinstance(valeurTexte,Decimal):
+                chaine=str(valeurTexte)
+            elif repr(valeurTexte.__class__).find("PARAMETRE") > 0:
+                chaine = repr(valeur)
+            else :
+                #PN ????
+                #try :
+                #  chaine=QString("").setNum(valeurTexte)
+                #except :
+                chaine=str(valeurTexte)
+        self.oldValeurTexte=chaine
+        self.lineEditVal.setText(chaine)
+
+
+    def finCommentaire(self):
+        mc = self.objSimp.definition
+        d_aides = { 'TXM' : tr(u"Une chaine de caracteres est attendue.  "),
+                    'R'   : tr(u"Un reel est attendu. "),
+                    'I'   : tr(u"Un entier est attendu.  "),
+                    'Matrice' : tr(u'Une Matrice est attendue.  '),
+                    'Fichier' : tr(u'Un fichier est attendu.  '),
+                    'FichierNoAbs' : tr(u'Un fichier est attendu.  '),
+                    'Repertoire' : tr(u'Un repertoire est attendu.  '),
+                    'FichierOuRepertoire' : tr(u'Un repertoire ou un fichier est attendu.  '),
+                    'Heure' : tr(u'Heure sous la forme HH:MM'),
+                    'Date' :  tr(u'Date sous la forme JJ/MM/AA')}
+        if mc.type[0] != type:
+            commentaire = d_aides.get(mc.type[0], tr("Type de base inconnu"))
+        else : commentaire=""
+        return commentaire
+
+
+    def LEvaleurPressed(self):
+        # pour les soucis d encoding
+        try :
+            if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+        except : pass
+        SaisieValeur.LEvaleurPressed(self)
+        #self.parentQt.donneFocus()
+        self.setValeurs()
+        self.reaffiche()
index 53a60983b8d201cefb3937ea4740a55201eb992b..601c0c420ea5352e6319b55650401a68d2a34cbc 100644 (file)
@@ -26,14 +26,14 @@ from PyQt5.QtWidgets import QRadioButton
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSimpBool     import Ui_WidgetSimpBool 
+from desWidgetSimpBool     import Ui_WidgetSimpBool
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpBool (Ui_WidgetSimpBool,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.RBTrue.clicked.connect(self.boutonTrueClic)
@@ -42,20 +42,19 @@ class MonWidgetSimpBool (Ui_WidgetSimpBool,Feuille):
         self.maCommande.listeAffichageWidget.append(self.RBTrue)
         self.AAfficher=self.RBTrue
 
-  def setValeurs(self):
-       valeur=self.node.item.getValeur()
-       if valeur == None  : return
-       if valeur == True  : self.RBTrue.setChecked(True)
-       if valeur == False : self.RBFalse.setChecked(True)
-       if self.monSimpDef.homo == 'constant' :
-          if valeur == True  : self.RBFalse.setDisabled(True)
-          else :               self.RBTrue.setDisabled(True)
-
-  def boutonTrueClic(self):
-      SaisieValeur.LEvaleurPressed(self,True)
-      self.reaffiche()
-
-  def boutonFalseClic(self):
-      SaisieValeur.LEvaleurPressed(self,False)
-      self.reaffiche()
-
+    def setValeurs(self):
+        valeur=self.node.item.getValeur()
+        if valeur == None  : return
+        if valeur == True  : self.RBTrue.setChecked(True)
+        if valeur == False : self.RBFalse.setChecked(True)
+        if self.monSimpDef.homo == 'constant' :
+            if valeur == True  : self.RBFalse.setDisabled(True)
+            else :               self.RBTrue.setDisabled(True)
+
+    def boutonTrueClic(self):
+        SaisieValeur.LEvaleurPressed(self,True)
+        self.reaffiche()
+
+    def boutonFalseClic(self):
+        SaisieValeur.LEvaleurPressed(self,False)
+        self.reaffiche()
index 5239a2d657e7d1c2c76fb308ab533e472fa8b882..39ae5b767744ebf86d55e9d3772596c2c4f52771 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os, locale
@@ -33,14 +33,14 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .feuille                import Feuille
-from desWidgetSimpComplexe  import Ui_WidgetSimpComplexe 
+from desWidgetSimpComplexe  import Ui_WidgetSimpComplexe
 from .politiquesValidation   import PolitiqueUnique
 from .qtSaisie               import SaisieValeur
 
 
 class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.setFocusPolicy(Qt.StrongFocus)
@@ -56,120 +56,118 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille):
         #self.maCommande.listeAffichageWidget.append(self.LEImag)
 
 
-  def setValeurs(self):
-       self.politique=PolitiqueUnique(self.node,self.editor)
-       valeur=self.node.item.getValeur()
-       if valeur == None or valeur == '' : return
-       if type(valeur) not in (list,tuple) :
-           self.LEComp.setText(str(valeur))
-       else :
-           typ_cplx,x1,x2=valeur
-           self.LEReel.setText(str(x1))
-           self.LEImag.setText(str(x2))
-           if typ_cplx == "RI" :
-              self.RBRI.setChecked(1)
-           else :
-              self.RBMP.setChecked(1)
-
-  def LECompRPressed(self) :
+    def setValeurs(self):
+        self.politique=PolitiqueUnique(self.node,self.editor)
+        valeur=self.node.item.getValeur()
+        if valeur == None or valeur == '' : return
+        if type(valeur) not in (list,tuple) :
+            self.LEComp.setText(str(valeur))
+        else :
+            typ_cplx,x1,x2=valeur
+            self.LEReel.setText(str(x1))
+            self.LEImag.setText(str(x2))
+            if typ_cplx == "RI" :
+                self.RBRI.setChecked(1)
+            else :
+                self.RBMP.setChecked(1)
+
+    def LECompRPressed(self) :
         self.LEReel.clear()
         self.LEImag.clear()
         commentaire=tr("expression valide")
         valeur = str(self.LEComp.text())
         d={}
         try :
-          v=eval(valeur,d)
+            v=eval(valeur,d)
         except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
-          return
+            commentaire=tr("expression invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
+            return
         try :
-          i=v.imag
-          self.editor.afficheInfos(commentaire)
-          self.valeurPressed()
+            i=v.imag
+            self.editor.afficheInfos(commentaire)
+            self.valeurPressed()
         except :
-          commentaire=tr("l expression n est pas de la forme a+bj")
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire=tr("l expression n est pas de la forme a+bj")
+            self.editor.afficheInfos(commentaire,Qt.red)
 
-  def LEReelRPressed(self):
+    def LEReelRPressed(self):
         self.LEComp.clear()
         commentaire=tr("expression valide")
         valeur = str(self.LEReel.text())
         try :
-          a=locale.atof(valeur)
-          self.editor.afficheInfos(commentaire)
+            a=locale.atof(valeur)
+            self.editor.afficheInfos(commentaire)
         except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire=tr("expression invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
         if self.LEImag.text()!="" : self.valeurPressed()
 
-  def LEImagRPressed(self):
+    def LEImagRPressed(self):
         self.LEComp.clear()
         commentaire=tr("expression valide")
         valeur = str(self.LEImag.text())
         try :
-          a=locale.atof(valeur)
-          self.editor.afficheInfos(commentaire)
+            a=locale.atof(valeur)
+            self.editor.afficheInfos(commentaire)
         except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire=tr("expression invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
         if self.LEReel.text()!="" : self.valeurPressed()
 
-  def finCommentaire(self):
-      commentaire="valeur de type complexe"
-      return commentaire
+    def finCommentaire(self):
+        commentaire="valeur de type complexe"
+        return commentaire
 
-  def getValeurComp(self):
+    def getValeurComp(self):
         commentaire=tr("expression valide")
         valeur = str(self.LEComp.text())
         d={}
         try :
-          v=eval(valeur,d)
+            v=eval(valeur,d)
         except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
-          return None
+            commentaire=tr("expression invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
+            return None
         try :
-          i=v.imag
+            i=v.imag
         except :
-          commentaire=tr("expression n est pas de la forme a+bj")
-          self.editor.afficheInfos(commentaire,Qt.red)
-          return None
+            commentaire=tr("expression n est pas de la forme a+bj")
+            self.editor.afficheInfos(commentaire,Qt.red)
+            return None
         return v
 
 
-  def valeurPressed(self):
-      if self.LEComp.text()== ""  and (self.LEReel.text()=="" or self.LEImag.text()=="") :
-         return
-      if self.LEComp.text()== "" : valeur = self.getValeurRI()
-      else :
-          if self.LEReel.text() != "" or self.LEImag.text() != "" :
-              commentaire=tr("entrer une seule valeur SVP")
-              self.editor.afficheInfos(commentaire,Qt.red)
-              return
-          valeur=  self.getValeurComp()
-      self.politique.recordValeur(valeur)
-      self.reaffiche()
-      self.parentQt.donneFocus()
-
-  def getValeurRI(self):
-      """
-      Retourne le complexe saisi par l'utilisateur
-      """
-      l=[]
-      if  (self.RBMP.isChecked() == 1 ) :
-         l.append("MP")
-      elif (self.RBRI.isChecked() == 1) :
-         l.append("RI")
-      else :
-         commentaire=tr("saisir le type de complexe")
-         self.editor.afficheInfos(commentaire,Qt.red)
-         return None
-      try :
-         l.append(locale.atof(str(self.LEReel.text())))
-         l.append(locale.atof(str(self.LEImag.text())))
-      except :
-         return None
-      return repr(tuple(l))
-
-      
+    def valeurPressed(self):
+        if self.LEComp.text()== ""  and (self.LEReel.text()=="" or self.LEImag.text()=="") :
+            return
+        if self.LEComp.text()== "" : valeur = self.getValeurRI()
+        else :
+            if self.LEReel.text() != "" or self.LEImag.text() != "" :
+                commentaire=tr("entrer une seule valeur SVP")
+                self.editor.afficheInfos(commentaire,Qt.red)
+                return
+            valeur=  self.getValeurComp()
+        self.politique.recordValeur(valeur)
+        self.reaffiche()
+        self.parentQt.donneFocus()
+
+    def getValeurRI(self):
+        """
+        Retourne le complexe saisi par l'utilisateur
+        """
+        l=[]
+        if  (self.RBMP.isChecked() == 1 ) :
+            l.append("MP")
+        elif (self.RBRI.isChecked() == 1) :
+            l.append("RI")
+        else :
+            commentaire=tr("saisir le type de complexe")
+            self.editor.afficheInfos(commentaire,Qt.red)
+            return None
+        try :
+            l.append(locale.atof(str(self.LEReel.text())))
+            l.append(locale.atof(str(self.LEImag.text())))
+        except :
+            return None
+        return repr(tuple(l))
index 80970e1c499493704813b7035839aa8836294109..fe93c4f21b254b37d759d3029e45bc5c220647e9 100644 (file)
@@ -26,19 +26,18 @@ from PyQt5.QtGui  import QIcon
 from PyQt5.QtCore import QSize
 from Extensions.i18n import tr
 
-from desWidgetSimpFichier  import Ui_WidgetSimpFichier 
+from desWidgetSimpFichier  import Ui_WidgetSimpFichier
 from .monWidgetSimpBase     import MonWidgetSimpBase
 
 
 class MonWidgetSimpFichier (Ui_WidgetSimpFichier,MonWidgetSimpBase):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if sys.platform[0:5]!="linux" :
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'file-explorer.png')
-          icon = QIcon(fichier)
-          self.BFichier.setIcon(icon)
-          self.BFichier.setIconSize(QSize(32, 32))
-
+            repIcon=self.node.editor.appliEficas.repIcon
+            fichier=os.path.join(repIcon, 'file-explorer.png')
+            icon = QIcon(fichier)
+            self.BFichier.setIcon(icon)
+            self.BFichier.setIconSize(QSize(32, 32))
index af575fd9c066f18a4b8de589d4517029b81c0874..f05a764c098a20aa7bae1add08fd6f0ffbcb84d6 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -33,14 +33,14 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSimpSalome   import Ui_WidgetSimpSalome 
+from desWidgetSimpSalome   import Ui_WidgetSimpSalome
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpSalome (Ui_WidgetSimpSalome,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self,1)
         self.setFocusPolicy(Qt.StrongFocus)
@@ -50,14 +50,14 @@ class MonWidgetSimpSalome (Ui_WidgetSimpSalome,Feuille):
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
 
 
-  def LEvaleurPressed(self):
-      if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
-      SaisieValeur.LEvaleurPressed(self)
-      self.parentQt.donneFocus()
-      self.setValeurs()
-      self.reaffiche()
+    def LEvaleurPressed(self):
+        if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+        SaisieValeur.LEvaleurPressed(self)
+        self.parentQt.donneFocus()
+        self.setValeurs()
+        self.reaffiche()
 
 
-  def setValeurs(self):
-      valeur=self.node.item.getValeur()
-      if valeur != None : self.lineEditVal.setText(str(valeur))
+    def setValeurs(self):
+        valeur=self.node.item.getValeur()
+        if valeur != None : self.lineEditVal.setText(str(valeur))
index 792df7d93a198e9a60f63786771b45502a05a036..931ced8f757ef29737d41c60541a4fd453d5dd6b 100644 (file)
@@ -20,8 +20,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
@@ -38,63 +38,61 @@ from InterfaceQT4.qtSaisie              import SaisieValeur
 
 class MonWidgetSimpTuple(Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.setFocusPolicy(Qt.StrongFocus)
 
-  def setValeurs(self):
-       valeur=self.node.item.getValeur()
-       for i in range(self.nbValeurs) :
-           nomLineEdit="lineEditVal"+str(i+1)
-           courant=getattr(self,nomLineEdit)
-           if valeur !=None: courant.setText(str(valeur[i]))
-           setattr(self,nomLineEdit,courant)
-           courant.returnPressed.connect(self.valeursPressed)
+    def setValeurs(self):
+        valeur=self.node.item.getValeur()
+        for i in range(self.nbValeurs) :
+            nomLineEdit="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            if valeur !=None: courant.setText(str(valeur[i]))
+            setattr(self,nomLineEdit,courant)
+            courant.returnPressed.connect(self.valeursPressed)
 
-  def valeursPressed(self):
-      aLeFocus=self.focusWidget()
-      self.editor.afficheInfos("")
-      texteValeur=""
-      for i in range(self.nbValeurs) :
-          nomLineEdit="lineEditVal"+str(i+1)
-          courant=getattr(self,nomLineEdit)
-          if courant.text()=="" or courant.text()==None :
-             courant.setFocus(True)
-             return 
-          s=str(courant.text())
-          if hasattr(self.objSimp.definition.validators, 'typeDesTuples'):
-           if self.objSimp.definition.validators.typeDesTuples[i] == "R" :
-             if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : 
-                 s=s+'.0'
-                 courant.setText(s)
-           if self.objSimp.definition.validators.typeDesTuples[i] == "TXM" :
-             if s[0]!='"' and s[0] != "'": 
-                if s[-1]=="'": s="'"+s
-                else :         s='"'+s
-             if s[-1]!='"' and s[-1] != "'": 
-                if s[0]=="'": s=s+"'"
-                else :        s=s+'"'
-             courant.setText(s)
-          texteValeur+=str(courant.text())
-          #print (texteValeur)
-          if i+1 != self.nbValeurs : texteValeur+=','
-      validite,commentaire=self.politique.recordValeur(texteValeur)
-      if not validite:self.editor.afficheInfos(commentaire+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
+    def valeursPressed(self):
+        aLeFocus=self.focusWidget()
+        self.editor.afficheInfos("")
+        texteValeur=""
+        for i in range(self.nbValeurs) :
+            nomLineEdit="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            if courant.text()=="" or courant.text()==None :
+                courant.setFocus(True)
+                return
+            s=str(courant.text())
+            if hasattr(self.objSimp.definition.validators, 'typeDesTuples'):
+                if self.objSimp.definition.validators.typeDesTuples[i] == "R" :
+                    if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) :
+                        s=s+'.0'
+                        courant.setText(s)
+                if self.objSimp.definition.validators.typeDesTuples[i] == "TXM" :
+                    if s[0]!='"' and s[0] != "'":
+                        if s[-1]=="'": s="'"+s
+                        else :         s='"'+s
+                    if s[-1]!='"' and s[-1] != "'":
+                        if s[0]=="'": s=s+"'"
+                        else :        s=s+'"'
+                    courant.setText(s)
+            texteValeur+=str(courant.text())
+            #print (texteValeur)
+            if i+1 != self.nbValeurs : texteValeur+=','
+        validite,commentaire=self.politique.recordValeur(texteValeur)
+        if not validite:self.editor.afficheInfos(commentaire+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
 
-      # Passage au champ suivant
-      nom=aLeFocus.objectName()[11:]
-      try :
-        i=int(nom)+1
-      except :
+        # Passage au champ suivant
+        nom=aLeFocus.objectName()[11:]
         try :
-          i=i+1
+            i=int(nom)+1
         except :
-          return
-      if i == self.nbValeurs +1 : i=1
-      nomLineEdit="lineEditVal"+str(i)
-      courant=getattr(self,nomLineEdit)
-      courant.setFocus(True)
-          
-         
+            try :
+                i=i+1
+            except :
+                return
+        if i == self.nbValeurs +1 : i=1
+        nomLineEdit="lineEditVal"+str(i)
+        courant=getattr(self,nomLineEdit)
+        courant.setFocus(True)
index e805c2b06a6311fdf5845c9ee1512c50d2a97cba..cc05928eb9433cf18bdc1da176702823d8281d27 100644 (file)
@@ -27,27 +27,26 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from .monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetTuple3       import Ui_WidgetTuple3 
+from .monWidgetSimpTuple    import MonWidgetSimpTuple
+from desWidgetTuple3       import Ui_WidgetTuple3
 
 
 class MonWidgetSimpTuple3 (Ui_WidgetTuple3,MonWidgetSimpTuple):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-           self.lineEditVal1.setDisabled(True)
-           self.lineEditVal2.setDisabled(True)
-           self.lineEditVal3.setDisabled(True)
-           self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-           self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-           self.lineEditVal3.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-           self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal3.setDisabled(True)
+            self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal3.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
         else :
-           self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
         #self.maCommande.listeAffichageWidget.append(self.lineEditVal2)
         #self.maCommande.listeAffichageWidget.append(self.lineEditVal3)
-
index 10eb80929d952959bf82bf485a1c4259ecb34e88..b6385fabc1bb1007e5882ce221783ac9165eb089 100644 (file)
@@ -27,77 +27,77 @@ import types,os
 from Extensions.i18n import tr
 
 from InterfaceQT4.feuille               import Feuille
-from InterfaceQT4.monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetTuple2  import Ui_WidgetTuple2 
-from desWidgetTuple3  import Ui_WidgetTuple3 
-from desWidgetTuple4  import Ui_WidgetTuple4 
-from desWidgetTuple5  import Ui_WidgetTuple5 
-from desWidgetTuple6  import Ui_WidgetTuple6 
-from desWidgetTuple7  import Ui_WidgetTuple7 
-from desWidgetTuple8  import Ui_WidgetTuple8 
-from desWidgetTuple9  import Ui_WidgetTuple9 
+from InterfaceQT4.monWidgetSimpTuple    import MonWidgetSimpTuple
+from desWidgetTuple2  import Ui_WidgetTuple2
+from desWidgetTuple3  import Ui_WidgetTuple3
+from desWidgetTuple4  import Ui_WidgetTuple4
+from desWidgetTuple5  import Ui_WidgetTuple5
+from desWidgetTuple6  import Ui_WidgetTuple6
+from desWidgetTuple7  import Ui_WidgetTuple7
+from desWidgetTuple8  import Ui_WidgetTuple8
+from desWidgetTuple9  import Ui_WidgetTuple9
 from desWidgetTuple10 import Ui_WidgetTuple10
 
 
 class MonWidgetSimpTuple2 (Ui_WidgetTuple2,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=2
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-          self.lineEditVal1.setDisabled(True)
-          self.lineEditVal2.setDisabled(True)
-          self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-          self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
         else :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-      
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+
 class MonWidgetSimpTuple3 (Ui_WidgetTuple3,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-          self.lineEditVal1.setDisabled(True)
-          self.lineEditVal2.setDisabled(True)
-          self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-          self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
         else :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-      
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+
 class MonWidgetSimpTuple4 (Ui_WidgetTuple4,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=4
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple5 (Ui_WidgetTuple5,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=5
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple6 (Ui_WidgetTuple6,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=6
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple7 (Ui_WidgetTuple7,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=7
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple8 (Ui_WidgetTuple8,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=8
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple9 (Ui_WidgetTuple9,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=9
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple10 (Ui_WidgetTuple10,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=10
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
index ca0cb7feb3f5e5ef886fcff91b02d0353cc85b7b..8a7aa7fea3817337c05350d074bf286c802690eb 100644 (file)
@@ -24,14 +24,12 @@ import types,os
 # Modules Eficas
 from Extensions.i18n import tr
 
-from desWidgetSimpTxt  import Ui_WidgetSimpTxt 
+from desWidgetSimpTxt  import Ui_WidgetSimpTxt
 from .monWidgetSimpBase     import MonWidgetSimpBase
 
 
 class MonWidgetSimpTxt (Ui_WidgetSimpTxt,MonWidgetSimpBase):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-
-
index 5a0bc061397352eb34c048ebbabe353a63ef5ddf..60a99b0288ef07f8e965e8b461cb8a5b05bb814d 100644 (file)
@@ -27,7 +27,7 @@ from PyQt5.QtWidgets import QLabel, QSizePolicy, QSpacerItem
 from PyQt5.QtCore    import QSize
 
 from InterfaceQT4.feuille                  import Feuille
-from InterfaceQT4.monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
+from InterfaceQT4.monWidgetPlusieursTuple  import MonWidgetPlusieursTuple
 from desWidgetPlusieursTuple               import Ui_WidgetPlusieursTuple
 from desWidgetTableau                      import Ui_WidgetTableau
 
@@ -35,7 +35,7 @@ maxLen=3
 
 
 class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=len(monSimpDef.homo)
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
@@ -43,7 +43,7 @@ class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
 
+
         for i in range(len(monSimpDef.homo)):
             nomCol='LECol'+str(i+1)
             objCol=QLabel(self)
@@ -58,16 +58,15 @@ class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
 
 #            monObjTitreCol=getattr(self,nomCol)
 #            monObjTitreCol.setText(monSimpDef.homo[i])
-            
+
 #        for i in range(maxLen-len(monSimpDef.homo)):
 #            index=i+len(monSimpDef.homo)+1
 #            nomCol='LECol'+str(index)
 #            monObjTitreCol=getattr(self,nomCol)
 #            monObjTitreCol.close()
-            
-        self.resize(self.width(),1800)
 
-  def ajoutLineEdit(self,valeur=None,inInit=False):
-      hauteurAvant=(self.frame.height())
-      MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
+        self.resize(self.width(),1800)
 
+    def ajoutLineEdit(self,valeur=None,inInit=False):
+        hauteurAvant=(self.frame.height())
+        MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
index 3d73333132f510ec55d398716a60aee7f9d8f7b2..d49a5400c1c5a5c6ec306f48bbd4fd52cc069b18 100644 (file)
@@ -27,7 +27,7 @@ from PyQt4.QtCore import *
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetUniqueSDCO   import Ui_WidgetUniqueSDCO 
+from desWidgetUniqueSDCO   import Ui_WidgetUniqueSDCO
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieSDCO
 
@@ -36,7 +36,7 @@ from .qtSaisie              import SaisieSDCO
 
 class MonWidgetUniqueSDCO (Ui_WidgetUniqueSDCO,Feuille,SaisieSDCO):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans MonWidgetSDCO"
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
@@ -47,4 +47,3 @@ class MonWidgetUniqueSDCO (Ui_WidgetUniqueSDCO,Feuille,SaisieSDCO):
         valeur = self.node.item.getValeur()
         if valeur  != "" and valeur != None : self.LESDCO.setText(valeur.nom)
         self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed)
-
index 1fb2e7209b6f1dc2efb824442431a342b425ef5b..9957d0eb35cd34ca3419a500a12ef5cb1673950a 100644 (file)
@@ -25,13 +25,13 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille                           import Feuille
-from desWidgetVide                      import Ui_WidgetVide 
+from desWidgetVide                      import Ui_WidgetVide
 from InterfaceQT4.politiquesValidation  import PolitiqueUnique
 
 class MonWidgetVide (Ui_WidgetVide,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         t=self.node.item.object.definition.type[0].__name__
index 83c2dab70473c5565cb1c22bddd96b612f6e16cb..1d0dac5750ee728629c66026d396c0334d7ae8d1 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import range
+    from builtins import range
 except : pass
 
 import types
@@ -31,266 +31,264 @@ from Extensions.i18n import tr
 #------------------
 class Validation(object)  :
 #------------------
-  def __init__(self,node,parent) :
-         self.node=node
-         self.parent=parent
-   
+    def __init__(self,node,parent) :
+        self.node=node
+        self.parent=parent
 
-  def testeUneValeur(self,valeurentree):
-         commentaire = None
-         #import traceback
-         #traceback.print_stack()
-         valeur,validite=self.node.item.evalValeur(valeurentree)
-         if not validite :
-                  commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
-                  return valeur,validite,commentaire
-         if self.node.item.waitTxm() and not( type(valeur) == str) : valeur=str(valeur) 
 
-         testtype,commentaire = self.node.item.object.verifType(valeur)
-         if not testtype :
-                  return valeur,0,commentaire
+    def testeUneValeur(self,valeurentree):
+        commentaire = None
+        #import traceback
+        #traceback.print_stack()
+        valeur,validite=self.node.item.evalValeur(valeurentree)
+        if not validite :
+            commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
+            return valeur,validite,commentaire
+        if self.node.item.waitTxm() and not( type(valeur) == str) : valeur=str(valeur)
 
-         valide=self.node.item.valideItem(valeur)
-         if type(valide) == tuple:
-                 validite,commentaire=valide
-         else :
-                 validite=valide
-                 commentaire=" "
+        testtype,commentaire = self.node.item.object.verifType(valeur)
+        if not testtype :
+            return valeur,0,commentaire
 
-         if not validite and commentaire is None:
-                  commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
-         #print ('ds testeUneValeur', valeur, validite, commentaire)
-         return valeur, validite, commentaire
+        valide=self.node.item.valideItem(valeur)
+        if type(valide) == tuple:
+            validite,commentaire=valide
+        else :
+            validite=valide
+            commentaire=" "
+
+        if not validite and commentaire is None:
+            commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
+        #print ('ds testeUneValeur', valeur, validite, commentaire)
+        return valeur, validite, commentaire
 
 # ----------------------------------------------------------------------------------------
 #   Methodes utilisees pour la manipulation des items en notation scientifique
 #   a mettre au point
 # ----------------------------------------------------------------------------------------
-  def setValeurTexte(self,texteValeur) :
-         try :
-                  if "R" in self.node.item.object.definition.type:
-                     if texteValeur[0] != "'":
-                        clef=eval(texteValeur)
-                        if str(clef) != str(texteValeur) :
-                           self.node.item.object.initModif()
-                           clefobj=self.node.item.object.getNomConcept()
-                           if not clefobj in self.parent.appliEficas.dict_reels:
-                              self.parent.appliEficas.dict_reels[clefobj] = {}
-                           self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
-                           self.parent.appliEficas.dict_reels[clefobj]
-                           if clefobj=="" : 
-                              if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
-                                 self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
-                              self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
-                           self.node.item.object.finModif()
-         except:
+    def setValeurTexte(self,texteValeur) :
+        try :
+            if "R" in self.node.item.object.definition.type:
+                if texteValeur[0] != "'":
+                    clef=eval(texteValeur)
+                    if str(clef) != str(texteValeur) :
+                        self.node.item.object.initModif()
+                        clefobj=self.node.item.object.getNomConcept()
+                        if not clefobj in self.parent.appliEficas.dict_reels:
+                            self.parent.appliEficas.dict_reels[clefobj] = {}
+                        self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                        self.parent.appliEficas.dict_reels[clefobj]
+                        if clefobj=="" :
+                            if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
+                                self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                            self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
+                        self.node.item.object.finModif()
+        except:
             pass
 
-  def getValeurTexte(self,valeur) :
-         valeurTexte=valeur
-         if valeur == None : return valeur
-         from decimal import Decimal
-         if  isinstance(valeur,Decimal) :
-             if self.node.waitTxm() and not self.isParam(valeur) : return "'"+str(valeur)+"'"
-             else : return(valeur)
-         if "R" in self.node.item.object.definition.type:
-                  clefobj=self.node.item.object.getNomConcept()
-                  if clefobj in self.parent.appliEficas.dict_reels:
-                     if valeur in self.parent.appliEficas.dict_reels[clefobj] :
-                        valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur]
-                  else :
-                     if str(valeur).find('.') == -1 and str(valeur).find('e') == -1 and str(valeur).find('E'):
-                     # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
-                        if (self.isParam(valeur)):
-                           return valeur
-                        else:
-                          try :
+    def getValeurTexte(self,valeur) :
+        valeurTexte=valeur
+        if valeur == None : return valeur
+        from decimal import Decimal
+        if  isinstance(valeur,Decimal) :
+            if self.node.waitTxm() and not self.isParam(valeur) : return "'"+str(valeur)+"'"
+            else : return(valeur)
+        if "R" in self.node.item.object.definition.type:
+            clefobj=self.node.item.object.getNomConcept()
+            if clefobj in self.parent.appliEficas.dict_reels:
+                if valeur in self.parent.appliEficas.dict_reels[clefobj] :
+                    valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur]
+            else :
+                if str(valeur).find('.') == -1 and str(valeur).find('e') == -1 and str(valeur).find('E'):
+                # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
+                    if (self.isParam(valeur)):
+                        return valeur
+                    else:
+                        try :
                             val2=eval(str(valeur)+'.')
-                          except :
+                        except :
                             pass
-         return valeurTexte
+        return valeurTexte
 
-  def isParam(self,valeur) :
-      for param in self.node.item.jdc.params:
-          if ((repr(param) == repr(valeur)) or (str(param)==str(valeur))):
-             return 1
-      return 0
+    def isParam(self,valeur) :
+        for param in self.node.item.jdc.params:
+            if ((repr(param) == repr(valeur)) or (str(param)==str(valeur))):
+                return 1
+        return 0
 
-  def ajoutDsDictReel(self,texteValeur):
-         # le try except est necessaire pour saisir les parametres
-         # on enleve l erreur de saisie 00 pour 0
-         if str(texteValeur)== '00' : return
-         try :
+    def ajoutDsDictReel(self,texteValeur):
+        # le try except est necessaire pour saisir les parametres
+        # on enleve l erreur de saisie 00 pour 0
+        if str(texteValeur)== '00' : return
+        try :
             if "R" in self.node.item.object.definition.type:
                 if str(texteValeur)[0] != "'":
-                   clef=eval(texteValeur)
-                   if str(clef) != str(texteValeur) :
-                      clefobj=self.node.item.object.getNomConcept()
-                      if not clefobj in self.parent.appliEficas :
-                          self.parent.appliEficas.dict_reels[clefobj] = {}
-                      self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
-                      if clefobj=="" : 
-                         if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
-                            self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
-                         self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
-                          
-         except:
-          pass
+                    clef=eval(texteValeur)
+                    if str(clef) != str(texteValeur) :
+                        clefobj=self.node.item.object.getNomConcept()
+                        if not clefobj in self.parent.appliEficas :
+                            self.parent.appliEficas.dict_reels[clefobj] = {}
+                        self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                        if clefobj=="" :
+                            if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
+                                self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                            self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
 
-  def ajoutDsDictReelEtape(self):
-      try:
-         if self.node.item.object in self.parent.appliEficas.dict_reels:
-            self.parent.appliEficas.dict_reels[self.node.item.sdnom]=self.parent.appliEficas.dict_reels[self.node.item.object]
-            del self.parent.appliEficas.dict_reels[self.node.item.object]
-      except :
-         pass
+        except:
+            pass
+
+    def ajoutDsDictReelEtape(self):
+        try:
+            if self.node.item.object in self.parent.appliEficas.dict_reels:
+                self.parent.appliEficas.dict_reels[self.node.item.sdnom]=self.parent.appliEficas.dict_reels[self.node.item.object]
+                del self.parent.appliEficas.dict_reels[self.node.item.object]
+        except :
+            pass
 
 
 #------------------------------------
 class PolitiqueUnique(Validation) :
 #------------------------------------
-  """
-  classe servant pour les entrees ne demandant qu un mot clef
-  """
-  def __init__(self,node,parent):
+    """
+    classe servant pour les entrees ne demandant qu un mot clef
+    """
+    def __init__(self,node,parent):
         Validation.__init__(self,node,parent)
 
-  def recordValeur(self,valeurentree):
-         if self.parent.modified == 'n' : self.parent.initModif()
-         ancienneVal = self.node.item.getValeur()
-         valeur,validite,commentaire =self.testeUneValeur(valeurentree)
-         if validite and ('R' in self.node.item.object.definition.type) and not(isinstance(valeur,PARAMETRE)) :
+    def recordValeur(self,valeurentree):
+        if self.parent.modified == 'n' : self.parent.initModif()
+        ancienneVal = self.node.item.getValeur()
+        valeur,validite,commentaire =self.testeUneValeur(valeurentree)
+        if validite and ('R' in self.node.item.object.definition.type) and not(isinstance(valeur,PARAMETRE)) :
             s=valeurentree
             if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : s=s+'.'
             valeur,validite,commentaire =self.testeUneValeur(s)
-         if validite :
+        if validite :
             validite=self.node.item.setValeur(valeur)
             if self.node.item.isValid():
-                  commentaire = tr("Valeur du mot-cle enregistree")
-                  #commentaire = "Valeur du mot-cle enregistree"
-                  self.setValeurTexte(str(valeurentree))
+                commentaire = tr("Valeur du mot-cle enregistree")
+                #commentaire = "Valeur du mot-cle enregistree"
+                self.setValeurTexte(str(valeurentree))
             else:
-                  cr = self.node.item.getCr()
-                  commentaire =  tr("Valeur du mot-cle non autorisee ")+cr.getMessFatal()
-                  self.node.item.setValeur(ancienneVal)
-         return validite, commentaire 
+                cr = self.node.item.getCr()
+                commentaire =  tr("Valeur du mot-cle non autorisee ")+cr.getMessFatal()
+                self.node.item.setValeur(ancienneVal)
+        return validite, commentaire
+
 
 #--------------------------------------
 class PolitiquePlusieurs(Validation):
 #--------------------------------------
-  """
-  classe servant pour les entrees ne demandant qu un mot clef
-  """
-  def __init__(self,node,parent) :
-         #print "ds PolitiquePlusieurs"
-         self.node=node
-         self.parent=parent
-         #print self.node
-         #print self.parent
+    """
+    classe servant pour les entrees ne demandant qu un mot clef
+    """
+    def __init__(self,node,parent) :
+        #print "ds PolitiquePlusieurs"
+        self.node=node
+        self.parent=parent
+        #print self.node
+        #print self.parent
 
 
-  def ajoutValeurs(self,listevaleur,index,listecourante):
-         listeRetour=[]
-         commentaire="Nouvelle valeur acceptee"
-         commentaire2=""
-         valide=1
-         if listevaleur==None: return
-         if listevaleur=="": return
-         if not( type(listevaleur)  in (list,tuple)) :
+    def ajoutValeurs(self,listevaleur,index,listecourante):
+        listeRetour=[]
+        commentaire="Nouvelle valeur acceptee"
+        commentaire2=""
+        valide=1
+        if listevaleur==None: return
+        if listevaleur=="": return
+        if not( type(listevaleur)  in (list,tuple)) :
             listevaleur=tuple(listevaleur)
-         # on verifie que la cardinalite max n a pas ete atteinte
-         min,max = self.node.item.getMinMax()
-         if len(listecourante) + len(listevaleur) > max :
+        # on verifie que la cardinalite max n a pas ete atteinte
+        min,max = self.node.item.getMinMax()
+        if len(listecourante) + len(listevaleur) > max :
             commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse"
             return False,commentaire,commentaire2,listeRetour
 
-         for valeur in listevaleur :
-             # On teste le type de la valeur
-             valeurScientifique=valeur
-             valide=self.node.item.valideItem(valeur)
-             if not valide :
+        for valeur in listevaleur :
+                # On teste le type de la valeur
+            valeurScientifique=valeur
+            valide=self.node.item.valideItem(valeur)
+            if not valide :
                 try :
-                   valeur,valide=self.node.item.evalValeur(valeur)
-                   valide,commentaire2 = self.node.item.object.verifType(valeur)
+                    valeur,valide=self.node.item.evalValeur(valeur)
+                    valide,commentaire2 = self.node.item.object.verifType(valeur)
                 except :
-                   #return testtype,commentaire,"",listeRetour
-                   pass
-             if not valide:
+                    #return testtype,commentaire,"",listeRetour
+                    pass
+            if not valide:
                 if commentaire.find("On attend un chaine") > 1 :
-                   commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse: On attend une chaine de caracteres < 8"
+                    commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse: On attend une chaine de caracteres < 8"
                 else :
-                   commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse"
+                    commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse"
                 if commentaire2== "" :commentaire2=self.node.item.infoErreurItem()
                 return valide,commentaire,commentaire2,listeRetour
 
-             # On valide la liste obtenue
-             encorevalide=self.node.item.valideListePartielle(valeur,listecourante)
-             if not encorevalide :
+            # On valide la liste obtenue
+            encorevalide=self.node.item.valideListePartielle(valeur,listecourante)
+            if not encorevalide :
                 commentaire2=self.node.item.infoErreurListe()
                 # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
                 min,max = self.node.item.getMinMax()
                 if len(listecourante) + 1 >= max :
-                   commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse"
-                   return valide,commentaire,commentaire2,listeRetour
+                    commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse"
+                    return valide,commentaire,commentaire2,listeRetour
                 if len(listecourante) + 1 > min :
-                   commentaire=""
-                   return valide,commentaire,commentaire2,listeRetour
-             # On ajoute la valeur testee a la liste courante et a la liste acceptee
-             self.ajoutDsDictReel(valeurScientifique)
-             listecourante.insert(index,valeur)
-             index=index+1
-             listeRetour.append(valeur)
+                    commentaire=""
+                    return valide,commentaire,commentaire2,listeRetour
+            # On ajoute la valeur testee a la liste courante et a la liste acceptee
+            self.ajoutDsDictReel(valeurScientifique)
+            listecourante.insert(index,valeur)
+            index=index+1
+            listeRetour.append(valeur)
 
-         return valide,commentaire,commentaire2,listeRetour
+        return valide,commentaire,commentaire2,listeRetour
 
-  def ajoutTuple(self,valeurTuple,listecourante):
-         listeRetour=[]
-         commentaire="Nouvelle valeur acceptee"
-         commentaire2=""
-         valide=1
-         if valeurTuple==None: return
-         if valeurTuple==['']: return
-         # On teste le type de la valeur
-         valide=self.node.item.valideItem(valeurTuple)
-         if not valide :
+    def ajoutTuple(self,valeurTuple,listecourante):
+        listeRetour=[]
+        commentaire="Nouvelle valeur acceptee"
+        commentaire2=""
+        valide=1
+        if valeurTuple==None: return
+        if valeurTuple==['']: return
+        # On teste le type de la valeur
+        valide=self.node.item.valideItem(valeurTuple)
+        if not valide :
             try :
                 valeur,valide=self.node.item.evalValeur(valeurTuple)
                 valide = self.node.item.valideItem(valeur)
             except :
                 pass
-         if not valide:
+        if not valide:
             commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout a la liste refuse"
             commentaire2=self.node.item.infoErreurItem()
             return valide,commentaire,commentaire2,listeRetour
 
-         # On valide la liste obtenue
-         encorevalide=self.node.item.valideListePartielle(valeurTuple,listecourante)
-         if not encorevalide :
+        # On valide la liste obtenue
+        encorevalide=self.node.item.valideListePartielle(valeurTuple,listecourante)
+        if not encorevalide :
             commentaire2=self.node.item.infoErreurListe()
             return valide,commentaire,commentaire2,listeRetour
-         listeRetour.append(valeurTuple)
-         return valide,commentaire,commentaire2,listeRetour
+        listeRetour.append(valeurTuple)
+        return valide,commentaire,commentaire2,listeRetour
 
-  def ajoutNTuple(self,liste):
-         commentaire="Nouvelles valeurs acceptee"
-         commentaire2=""
-         valide=self.node.item.valideListePartielle(None,liste)
-         print ('uuuuuuuuuuu',valide)
-         if not valide :
+    def ajoutNTuple(self,liste):
+        commentaire="Nouvelles valeurs acceptee"
+        commentaire2=""
+        valide=self.node.item.valideListePartielle(None,liste)
+        print ('uuuuuuuuuuu',valide)
+        if not valide :
             commentaire2=self.node.item.infoErreurListe()
-         return valide,commentaire,commentaire2
+        return valide,commentaire,commentaire2
 
-  def recordValeur(self,liste,dejaValide=True):
-         ancienneVal = self.node.item.getValeur()
-         validite=self.node.item.setValeur(liste)
-         if validite : self.node.item.initModif()
-         if self.node.item.isValid():
+    def recordValeur(self,liste,dejaValide=True):
+        ancienneVal = self.node.item.getValeur()
+        validite=self.node.item.setValeur(liste)
+        if validite : self.node.item.initModif()
+        if self.node.item.isValid():
             commentaire = tr("Valeur du mot-cle enregistree")
-         else:
+        else:
             cr = self.node.item.getCr()
             commentaire =  tr("Valeur du mot-cle non autorisee ")+cr.getMessFatal()
             self.node.item.setValeur(ancienneVal)
-         return validite, commentaire 
-
-      
+        return validite, commentaire
index 3347475ed12c086ccbeedc7ce3950cfde9219225..53fd535501d637d7128359bbc8f0b78679a9e64e 100755 (executable)
@@ -22,7 +22,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os, sys
@@ -51,9 +51,9 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         """
         Constructor
         """
-        if ssIhm == True : 
-           print ('mauvaise utilisation de la classe Appli. Utiliser AppliSsIm SVP')
-           exit()
+        if ssIhm == True :
+            print ('mauvaise utilisation de la classe Appli. Utiliser AppliSsIm SVP')
+            exit()
 
         AppliSsIhm.__init__(self,code,salome,parent,multi=multi,langue=langue,ssIhm=True, labelCode=labelCode)
         QMainWindow.__init__(self,parent)
@@ -65,21 +65,21 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
 
 
         if self.multi == False :
-             self.definitCode(code,None)
-             if code==None: return
+            self.definitCode(code,None)
+            if code==None: return
         else :
-             self.definitCode(code,None)
-             if code==None: return
-             print ('il faut trouver le chemin du code')
-             return 
+            self.definitCode(code,None)
+            if code==None: return
+            print ('il faut trouver le chemin du code')
+            return
 
         self.suiteTelemac=False
         if hasattr (self, 'maConfiguration') :
-           if self.maConfiguration.demandeLangue :
-              from InterfaceQT4.monChoixLangue import MonChoixLangue
-              widgetLangue = MonChoixLangue(self)
-              ret=widgetLangue.exec_()
-           self.suiteTelemac=self.maConfiguration.suiteTelemac
+            if self.maConfiguration.demandeLangue :
+                from InterfaceQT4.monChoixLangue import MonChoixLangue
+                widgetLangue = MonChoixLangue(self)
+                ret=widgetLangue.exec_()
+            self.suiteTelemac=self.maConfiguration.suiteTelemac
 
 
         if not self.salome and hasattr (self, 'maConfiguration') and hasattr(self.maConfiguration,'lang') : self.langue=self.maConfiguration.lang
@@ -92,22 +92,22 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         #else              : self.parentCentralWidget = None
 
         if not self.salome :
-           if  hasattr (self, 'maConfiguration') and hasattr(self.maConfiguration,'taille') : self.taille=self.maConfiguration.taille
-           else : self.taille=1700
+            if  hasattr (self, 'maConfiguration') and hasattr(self.maConfiguration,'taille') : self.taille=self.maConfiguration.taille
+            else : self.taille=1700
 
-           self.resize(self.taille,self.height())
+            self.resize(self.taille,self.height())
 
 
         icon = QIcon(self.repIcon+"/parametres.png")
         self.actionParametres.setIcon(icon)
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  : 
-           self.frameEntete.setMaximumSize(QSize(16777215,100))
-           self.frameEntete.setMinimumSize(QSize(0,100))
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverActionStructures  : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  :
+            self.frameEntete.setMaximumSize(QSize(16777215,100))
+            self.frameEntete.setMinimumSize(QSize(0,100))
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverActionStructures  :
             self.enleverActionsStructures()
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverParametres  : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverParametres  :
             self.enleverParametres()
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverSupprimer : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverSupprimer :
             self.enleverSupprimer()
 
 
@@ -122,15 +122,15 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.blEnteteGlob.insertLayout(0,self.blEntete)
 
 
-        
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  : 
+
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  :
             self.blEnteteCommmande = QBoxLayout(0)
             self.blEnteteCommmande.insertWidget(0,self.toolBarCommande)
             self.toolBarCommande.setIconSize(QSize(96,96))
             self.blEnteteGlob.insertLayout(-1,self.blEnteteCommmande)
         else :
             self.toolBarCommande.close()
-         
+
 
         if hasattr (self, 'maConfiguration') and self.maConfiguration.closeEntete==True and self.salome: self.closeEntete()
 
@@ -153,11 +153,11 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         try :
         #if 1 :
          #print ('attention try devient if 1')
-          self.ouvreFichiers()
+            self.ouvreFichiers()
         except EficasException as exc:
         #except:
-          print ("je suis dans le except")
-          if self.salome == 0 : exit()
+            print ("je suis dans le except")
+            if self.salome == 0 : exit()
 
         #self.adjustSize()
 
@@ -170,11 +170,11 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.code=code
         self.ssCode=ssCode
         if self.code==None :
-           self.cleanPath()
-           from InterfaceQT4.monChoixCode import MonChoixCode
-           widgetChoix = MonChoixCode(self)
-           ret=widgetChoix.exec_()
-           #widgetChoix.show()
+            self.cleanPath()
+            from InterfaceQT4.monChoixCode import MonChoixCode
+            widgetChoix = MonChoixCode(self)
+            ret=widgetChoix.exec_()
+            #widgetChoix.show()
         if self.code == None:return # pour le cancel de la fenetre choix code
         AppliSsIhm.definitCode(self,self.code,ssCode)
 
@@ -191,20 +191,20 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.initRecents()
         self.initAides()
         for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution","menuN1"):
-              if hasattr(self,intituleMenu):
-                 menu=getattr(self,intituleMenu)
-                 menu.setAttribute(Qt.WA_DeleteOnClose)
-                 menu.close()
-                 delattr(self,intituleMenu)
+            if hasattr(self,intituleMenu):
+                menu=getattr(self,intituleMenu)
+                menu.setAttribute(Qt.WA_DeleteOnClose)
+                menu.close()
+                delattr(self,intituleMenu)
         for intituleAction in ("actionExecution","actionSaveRun"):
             if hasattr(self,intituleAction):
-              action=getattr(self,intituleAction)
-              self.toolBar.removeAction(action)
+                action=getattr(self,intituleAction)
+                self.toolBar.removeAction(action)
         if self.code.upper() in Appli.__dict__:
-          Appli.__dict__[self.code.upper()](self,)
+            Appli.__dict__[self.code.upper()](self,)
         if self.suiteTelemac : self.lookSuiteTelemac()
         self.metMenuAJourUtilisateurs()
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.ajoutExecution : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.ajoutExecution :
             self.ajoutExecution()
 
     def initAides(self):
@@ -217,10 +217,10 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.fileDoc=os.path.join(self.docPath,fileName)
         self.actionCode.setText(tr("Aide specifique ")+str(self.code))
         if not os.path.isfile(self.fileDoc) :
-               self.fileDoc=""
-               self.docPath=""
-               self.actionCode.setEnabled(False)
-               return
+            self.fileDoc=""
+            self.docPath=""
+            self.actionCode.setEnabled(False)
+            return
 
         self.actionCode.setEnabled(True)
         self.menuAide.addAction(self.actionCode)
@@ -270,14 +270,14 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.menuExecution = self.menubar.addMenu(tr("&Run"))
         self.actionExecution = QAction(self)
         if sys.platform[0:5]=="linux":
-          icon6 = QIcon(self.repIcon+"/roue.png")
-          self.actionExecution.setIcon(icon6)
+            icon6 = QIcon(self.repIcon+"/roue.png")
+            self.actionExecution.setIcon(icon6)
         else :
-          self.actionExecution.setText(tr("Run"))
+            self.actionExecution.setText(tr("Run"))
         self.actionExecution.setObjectName("actionExecution")
         self.menuExecution.addAction(self.actionExecution)
         if not(self.actionExecution in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionExecution)
+            self.toolBar.addAction(self.actionExecution)
         self.actionExecution.setText(tr("Run"))
         self.actionExecution.triggered.connect(self.run)
 
@@ -288,7 +288,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.actionSaveRun.setObjectName("actionSaveRun")
         self.menuExecution.addAction(self.actionSaveRun)
         if not(self.actionSaveRun in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionSaveRun)
+            self.toolBar.addAction(self.actionSaveRun)
         self.actionSaveRun.setText(tr("Save Run"))
         self.actionSaveRun.triggered.connect(self.saveRun)
 
@@ -446,9 +446,9 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     def ChercheGrpMesh(self):
         Msg,listeGroup=self.ChercheGrpMeshInSalome()
         if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
+            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
-           print ("il faut gerer les erreurs")
+            print ("il faut gerer les erreurs")
 
     def ChercheGrpMaille(self):
         # Normalement la variable self.salome permet de savoir si on est ou non dans Salome
@@ -458,9 +458,9 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         except:
             raise ValueError('Salome non ouvert')
         if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
+            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
-           print ("il faut gerer les erreurs")
+            print ("il faut gerer les erreurs")
 
 
     def ChercheGrp(self):
@@ -650,57 +650,57 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     # Mise a jour du menu des fichiers recemment ouverts
         from Editeur import listePatrons
         if not(self.code in listePatrons.sous_menus) :
-           if hasattr(self,"menuPatrons"):
-              self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
-              self.menuPatrons.close()
-              delattr(self,"menuPatrons")
-           return
+            if hasattr(self,"menuPatrons"):
+                self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
+                self.menuPatrons.close()
+                delattr(self,"menuPatrons")
+            return
         if (not hasattr(self,"menuPatrons")):
-           self.menuPatrons = QMenu(self.menubar)
-           self.menuPatrons.setObjectName("menuPatrons")
-           self.menubar.addAction(self.menuPatrons.menuAction())
-           self.menuPatrons.setTitle(tr("Patrons"))
+            self.menuPatrons = QMenu(self.menubar)
+            self.menuPatrons.setObjectName("menuPatrons")
+            self.menubar.addAction(self.menuPatrons.menuAction())
+            self.menuPatrons.setTitle(tr("Patrons"))
         else :
-           self.menuPatrons.clear()
+            self.menuPatrons.clear()
         self.listePatrons = listePatrons.listePatrons(self.code)
         idx = 0
         for nomSsMenu in self.listePatrons.liste:
             ssmenu=self.menuPatrons.addMenu(nomSsMenu)
             for fichier in self.listePatrons.liste[nomSsMenu]:
-               id = ssmenu.addAction(fichier)
-               self.ficPatrons[id]=fichier
-               self.id.triggered.connect(self.handleOpenPatrons)
+                id = ssmenu.addAction(fichier)
+                self.ficPatrons[id]=fichier
+                self.id.triggered.connect(self.handleOpenPatrons)
             #   self.Patrons.setItemParameter(id,idx)
-               idx=idx+1
+                idx=idx+1
 
     def initRecents(self):
-       self.recent =  []
-       try :
-           #if sys.platform[0:5]=="linux" :
-              #rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
-           rep=os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
-           #else :
-           #   rep=os.path.join('C:/','.config/Eficas',self.code)
-           monFichier=rep+"/listefichiers_"+self.code
-           index=0
-           f=open(monFichier)
-           while ( index < 9) :
-              ligne=f.readline()
-              if ligne != "" :
-                 l=(ligne.split("\n"))[0]
-                 self.recent.append(l)
-              index=index+1
-       except :
-           pass
-
-       try    : f.close()
-       except : pass
+        self.recent =  []
+        try :
+            #if sys.platform[0:5]=="linux" :
+                #rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
+            rep=os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
+            #else :
+            #   rep=os.path.join('C:/','.config/Eficas',self.code)
+            monFichier=rep+"/listefichiers_"+self.code
+            index=0
+            f=open(monFichier)
+            while ( index < 9) :
+                ligne=f.readline()
+                if ligne != "" :
+                    l=(ligne.split("\n"))[0]
+                    self.recent.append(l)
+                index=index+1
+        except :
+            pass
+
+        try    : f.close()
+        except : pass
 
     def addToRecentList(self, fn):
-      while fn in self.recent: self.recent.remove(fn)
-      self.recent.insert(0,fn)
-      if len(self.recent) > 9:
-         self.recent = self.recent[:9]
+        while fn in self.recent: self.recent.remove(fn)
+        self.recent.insert(0,fn)
+        if len(self.recent) > 9:
+            self.recent = self.recent[:9]
 
 
     def addToRecentListQT4(self, fn):
@@ -717,24 +717,24 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.sauveRecents()
 
     def sauveRecents(self) :
-       try :
-         rep=self.maConfiguration.rep_user
-         monFichier=rep+"/listefichiers_"+self.code
-       except :
-         return
-       try :
+        try :
+            rep=self.maConfiguration.rep_user
+            monFichier=rep+"/listefichiers_"+self.code
+        except :
+            return
+        try :
             f=open(monFichier,'w')
             if len(self.recent) == 0 : return
             index=0
             while ( index <  len(self.recent)):
-              ligne=str(self.recent[index])+"\n"
-              f.write(ligne)
-              index=index+1
-       except :
+                ligne=str(self.recent[index])+"\n"
+                f.write(ligne)
+                index=index+1
+        except :
             pass
-       try :
+        try :
             f.close()
-       except :
+        except :
             pass
 
 
@@ -765,49 +765,49 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         repAide=os.path.dirname(os.path.abspath(__file__))
         maD=os.path.join( repAide,'..','Doc')
         try :
-          indexAide=os.path.join(maD,'index.html')
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
-          else                          : cmd="start "+indexAide
-          os.system(cmd)
+            indexAide=os.path.join(maD,'index.html')
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
+            else                          : cmd="start "+indexAide
+            os.system(cmd)
         except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
     def aidePSEN(self) :
         repAide=os.path.dirname(os.path.abspath(__file__))
         maD=os.path.join( repAide,'..','Doc')
         try :
-          indexAide=os.path.join(maD,'index.html')
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
-          else                          : cmd="start "+indexAide
-          os.system(cmd)
+            indexAide=os.path.join(maD,'index.html')
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
+            else                          : cmd="start "+indexAide
+            os.system(cmd)
         except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
     def aideCode(self) :
         if self.code==None : return
         try :
         #if 1 :
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.fileDoc
-          else                          : cmd="start "+self.fileDoc
-          os.system(cmd)
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.fileDoc
+            else                          : cmd="start "+self.fileDoc
+            os.system(cmd)
         except:
         #else:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
 
     def optionEditeur(self) :
         try :
-           name='monOptions_'+self.code
+            name='monOptions_'+self.code
         except :
-           QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
-           return
+            QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
+            return
         try :
         #if 1:
-           optionCode=__import__(name)
+            optionCode=__import__(name)
         except :
         #else :
-           QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
-           return
+            QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
+            return
         monOption=optionCode.Options(parent=self,modal = 0 ,configuration=self.maConfiguration)
         monOption.show()
 
@@ -843,7 +843,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.viewmanager.handleOpen(fichier=fichier, patron =0 )
 
     def handleClearRecent(self):
-        self.recent = [] 
+        self.recent = []
         self.sauveRecents()
 
     def handleRechercherDsCatalogue(self):
@@ -950,32 +950,32 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     def cleanPath(self):
         for pathCode in self.ListePathCode:
             try:
-              aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
-              sys.path.remove(aEnlever)
+                aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
+                sys.path.remove(aEnlever)
             except :
-              pass
+                pass
         for pathCode in self.listeAEnlever:
             try:
-              sys.path.remove(aEnlever)
+                sys.path.remove(aEnlever)
             except :
-              pass
+                pass
 
 
     def closeEvent(self,event):
-      res=self.fileExit()
-      if res==2 : event.ignore()
+        res=self.fileExit()
+        if res==2 : event.ignore()
+
 
     def remplitIconesCommandes(self):
         if self.maConfiguration.boutonDsMenuBar == False : return
         if not hasattr(self, 'readercata') : return
         from monLayoutBouton import MonLayoutBouton
         if hasattr(self,'monLayoutBoutonRempli') : return
         self.monLayoutBoutonRempli=MonLayoutBouton(self)
-        
+
     def handleAjoutEtape(self,nomEtape):
         self.viewmanager.handleAjoutEtape(nomEtape)
-     
+
     def metMenuAJourUtilisateurs(self):
         self.lesFonctionsUtilisateurs={}
         if self.code not in self.mesScripts : return
@@ -985,12 +985,12 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
             self.menuOptions = self.menubar.addMenu("menuOptions")
             self.menuOptions.setTitle(tr(titre))
             for elt in lesFonctions :
-               laFonctionUtilisateur, label, lesArguments = elt
-               action = QAction(self)
-               action.setText(label)
+                laFonctionUtilisateur, label, lesArguments = elt
+                action = QAction(self)
+                action.setText(label)
             #action.triggered.connect(self.appelleFonctionUtilisateur)
-               self.menuOptions.addAction(action)
-               self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments)
+                self.menuOptions.addAction(action)
+                self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments)
             self.menuOptions.triggered.connect(self.handleFonctionUtilisateur)
 
 
index f01e6604b7c3289223c8b5b15876f58a1fc92f76..2f5dcedfd438b57c601a9c7216101ab65f3dc879 100755 (executable)
@@ -22,7 +22,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os, sys
@@ -70,24 +70,24 @@ class AppliSsIhm:
         self.withXSD=session.d_env.withXSD
 
         if self.salome:
-          import Accas
-          try :
-            import eficasSalome
-            Accas.SalomeEntry = eficasSalome.SalomeEntry
-          except : 
-            print ('eficas hors salome')
+            import Accas
+            try :
+                import eficasSalome
+                Accas.SalomeEntry = eficasSalome.SalomeEntry
+            except :
+                print ('eficas hors salome')
 
         self.multi=multi
-        if self.multi : 
-              print ('pas de multi sans ihm')
+        if self.multi :
+            print ('pas de multi sans ihm')
 
 
         if langue=='fr': self.langue=langue
         else           : self.langue="ang"
 
         if self.multi == False :
-             self.definitCode(code,None)
-             if code==None: return
+            self.definitCode(code,None)
+            if code==None: return
 
         self.suiteTelemac=False
         self.viewmanager=MyViewManagerSsIhm(self)
@@ -98,33 +98,33 @@ class AppliSsIhm:
         self.ssCode=ssCode
         if self.code == None:return # pour le cancel de la fenetre choix code
 
-        try : 
-          name='prefs_'+self.code
-          prefsCode=__import__(name)
-          self.repIni=prefsCode.repIni
-        except : 
-          self.repIni=os.path.dirname(os.path.abspath(__file__))
-          
+        try :
+            name='prefs_'+self.code
+            prefsCode=__import__(name)
+            self.repIni=prefsCode.repIni
+        except :
+            self.repIni=os.path.dirname(os.path.abspath(__file__))
+
 
         if ssCode != None :
-           self.formatFichierOut = ssCode  #par defaut
-           prefsCode.NAME_SCHEME = ssCode
+            self.formatFichierOut = ssCode  #par defaut
+            prefsCode.NAME_SCHEME = ssCode
         else :
-           self.formatFichierIn  = "python" #par defaut
-           self.formatFichierOut = "python" #par defaut
+            self.formatFichierIn  = "python" #par defaut
+            self.formatFichierOut = "python" #par defaut
 
         nameConf='configuration_'+self.code
         try :
-          configuration=__import__(nameConf)
-          self.maConfiguration = configuration.make_config(self,self.repIni)
+            configuration=__import__(nameConf)
+            self.maConfiguration = configuration.make_config(self,self.repIni)
         except :
-          from InterfaceQT4.configuration import makeConfig
-          #self.maConfiguration = configuration.makeConfig(self,prefsCode.repIni)
-          self.maConfiguration = makeConfig(self,self.repIni)
+            from InterfaceQT4.configuration import makeConfig
+            #self.maConfiguration = configuration.makeConfig(self,prefsCode.repIni)
+            self.maConfiguration = makeConfig(self,self.repIni)
 
         if hasattr (self,'maConfiguration') and self.maConfiguration.translatorFichier :
-           from Extensions import localisation
-           localisation.localise(None,self.langue,translatorFichier=self.maConfiguration.translatorFichier)
+            from Extensions import localisation
+            localisation.localise(None,self.langue,translatorFichier=self.maConfiguration.translatorFichier)
         if self.withXSD : self.maConfiguration.withXSD=True
 
 
@@ -138,18 +138,18 @@ class AppliSsIhm:
 
 
     def initEditor(self,fichier = None,jdc = None, units = None,include=0):
-        if (hasattr(self, 'editor')) and self.editor != None : 
-           print ('un seul editeur par application')
-           sys.exit()
+        if (hasattr(self, 'editor')) and self.editor != None :
+            print ('un seul editeur par application')
+            sys.exit()
         self.editor = self.viewmanager.getNewEditorNormal()
-        
+
     def initEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
-        if (hasattr(self, 'editor')) and self.editor != None : 
-           print ('un seul editeur par application')
-           sys.Exit()
+        if (hasattr(self, 'editor')) and self.editor != None :
+            print ('un seul editeur par application')
+            sys.Exit()
         #self.editor = JDCEditorSsIhm(self,fichier, jdc, self.myQtab,units=units,include=include)
         self.editor = self.viewmanager.getNewEditorNormal()
-        
+
 
     def fileNew(self):
         self.editor=self.initEditor()
@@ -193,7 +193,7 @@ class AppliSsIhm:
 #,self.jdcRegles
 #,self.jdcFichierSource
 #,self.visuJdcPy
-       
+
 
 
 if __name__=='__main__':
index 2eb78021cc3581065222d1571afb6250c946bd32..ef58198721a6718197a6613009edabdcccf78e2e 100644 (file)
@@ -31,7 +31,7 @@ from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
 from Editeur import session
-import Accas 
+import Accas
 
 
 class Appli(Ui_Eficas,QMainWindow):
@@ -68,8 +68,8 @@ class Appli(Ui_Eficas,QMainWindow):
         if langue=='fr': self.langue=langue
         else           : self.langue="ang"
         if self.multi == False :
-             self.definitCode(code,ssCode)
-             if code==None: return
+            self.definitCode(code,ssCode)
+            if code==None: return
 
         eficas_root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
         self.ajoutIcones()
@@ -92,10 +92,10 @@ class Appli(Ui_Eficas,QMainWindow):
         self.code=code
         self.ssCode=ssCode
         if self.code==None :
-           self.cleanPath()
-           from monChoixCode import MonChoixCode
-           widgetChoix = MonChoixCode(self)
-           ret=widgetChoix.exec_()
+            self.cleanPath()
+            from monChoixCode import MonChoixCode
+            widgetChoix = MonChoixCode(self)
+            ret=widgetChoix.exec_()
         import sys
         if self.code == None:return # pour le cancel de la fenetre choix code
         name='prefs_'+self.code
@@ -103,38 +103,38 @@ class Appli(Ui_Eficas,QMainWindow):
 
         self.repIni=prefsCode.repIni
         if ssCode != None :
-           self.format_fichier= ssCode  #par defaut
-           prefsCode.NAME_SCHEME=ssCode
+            self.format_fichier= ssCode  #par defaut
+            prefsCode.NAME_SCHEME=ssCode
         else :
-           self.format_fichier="python" #par defaut
+            self.format_fichier="python" #par defaut
 
         nameConf='configuration_'+self.code
         configuration=__import__(nameConf)
         self.CONFIGURATION = configuration.make_config(self,prefsCode.repIni)
         self.CONFIGStyle = None
         if hasattr(configuration,'make_config_style'):
-           self.CONFIGStyle = configuration.make_config_style(self,prefsCode.repIni)
+            self.CONFIGStyle = configuration.make_config_style(self,prefsCode.repIni)
         if hasattr(prefsCode,'encoding'):
-           import sys
-           reload(sys)
-           sys.setdefaultencoding(prefsCode.encoding)
+            import sys
+            reload(sys)
+            sys.setdefaultencoding(prefsCode.encoding)
 
     def construitMenu(self):
         self.initPatrons()
         self.initRecents()
         self.initAides()
         for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution"):
-              if hasattr(self,intituleMenu):
-                 menu=getattr(self,intituleMenu)
-                 menu.setAttribute(Qt.WA_DeleteOnClose)
-                 menu.close()
-                 delattr(self,intituleMenu)
+            if hasattr(self,intituleMenu):
+                menu=getattr(self,intituleMenu)
+                menu.setAttribute(Qt.WA_DeleteOnClose)
+                menu.close()
+                delattr(self,intituleMenu)
         for intituleAction in ("actionExecution","actionSaveRun",):
             if hasattr(self,intituleAction):
-              action=getattr(self,intituleAction)
-              self.toolBar.removeAction(action)
+                action=getattr(self,intituleAction)
+                self.toolBar.removeAction(action)
         if self.code in Appli.__dict__.keys():
-          listeTexte=apply(Appli.__dict__[self.code],(self,))
+            listeTexte=apply(Appli.__dict__[self.code],(self,))
 
     def initAides(self):
         #print "je passe la"
@@ -146,10 +146,10 @@ class Appli(Ui_Eficas,QMainWindow):
         self.fileDoc=os.path.join(self.docPath,fileName)
         self.actionCode.setText(tr("Aide specifique ")+str(self.code))
         if not os.path.isfile(self.fileDoc) :
-               self.fileDoc=""
-               self.docPath=""
-               self.actionCode.setEnabled(False)
-               return
+            self.fileDoc=""
+            self.docPath=""
+            self.actionCode.setEnabled(False)
+            return
 
         self.actionCode.setEnabled(True)
         self.menuAide.addAction(self.actionCode)
@@ -162,7 +162,7 @@ class Appli(Ui_Eficas,QMainWindow):
         self.actionExecution.setObjectName("actionExecution")
         self.menuExecution.addAction(self.actionExecution)
         if not(self.actionExecution in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionExecution)
+            self.toolBar.addAction(self.actionExecution)
         self.actionExecution.setText(QApplication.translate("Eficas", "Execution ", None, QApplication.UnicodeUTF8))
         self.connect(self.actionExecution,SIGNAL("activated()"),self.run)
 
@@ -172,7 +172,7 @@ class Appli(Ui_Eficas,QMainWindow):
         self.actionSaveRun.setObjectName("actionSaveRun")
         self.menuExecution.addAction(self.actionSaveRun)
         if not(self.actionSaveRun in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionSaveRun)
+            self.toolBar.addAction(self.actionSaveRun)
         self.actionSaveRun.setText(QApplication.translate("Eficas", "Save Run", None, QApplication.UnicodeUTF8))
         self.connect(self.actionSaveRun,SIGNAL("activated()"),self.saveRun)
 
@@ -202,16 +202,16 @@ class Appli(Ui_Eficas,QMainWindow):
     def ChercheGrpMesh(self):
         Msg,listeGroup=self.ChercheGrpMeshInSalome()
         if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
+            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
-           print "il faut gerer les erreurs"
+            print "il faut gerer les erreurs"
 
     def ChercheGrpMaille(self):
         Msg,listeGroup=self.ChercheGrpMailleInSalome()
         if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
+            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
-           print "il faut gerer les erreurs"
+            print "il faut gerer les erreurs"
 
 
     def ajoutIcones(self) :
@@ -314,49 +314,49 @@ class Appli(Ui_Eficas,QMainWindow):
     # Mise a jour du menu des fichiers recemment ouverts
         from Editeur import listePatrons
         if not(self.code in listePatrons.sous_menus.keys()) :
-           if hasattr(self,"menuPatrons"):
-              self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
-              self.menuPatrons.close()
-              delattr(self,"menuPatrons")
-           return
+            if hasattr(self,"menuPatrons"):
+                self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
+                self.menuPatrons.close()
+                delattr(self,"menuPatrons")
+            return
         if (not hasattr(self,"menuPatrons")):
-           self.menuPatrons = QMenu(self.menubar)
-           self.menuPatrons.setObjectName("menuPatrons")
-           self.menubar.addAction(self.menuPatrons.menuAction())
-           self.menuPatrons.setTitle(QApplication.translate("Eficas", "Patrons", None, QApplication.UnicodeUTF8))
+            self.menuPatrons = QMenu(self.menubar)
+            self.menuPatrons.setObjectName("menuPatrons")
+            self.menubar.addAction(self.menuPatrons.menuAction())
+            self.menuPatrons.setTitle(QApplication.translate("Eficas", "Patrons", None, QApplication.UnicodeUTF8))
         else :
-           self.menuPatrons.clear()
+            self.menuPatrons.clear()
         self.listePatrons = listePatrons.listePatrons(self.code)
         idx = 0
         for nomSsMenu in self.listePatrons.liste.keys():
             ssmenu=self.menuPatrons.addMenu(nomSsMenu)
             for fichier in self.listePatrons.liste[nomSsMenu]:
-               id = ssmenu.addAction(fichier)
-               self.ficPatrons[id]=fichier
-               self.connect(id, SIGNAL('triggered()'),self.handleOpenPatrons)
+                id = ssmenu.addAction(fichier)
+                self.ficPatrons[id]=fichier
+                self.connect(id, SIGNAL('triggered()'),self.handleOpenPatrons)
             #   self.Patrons.setItemParameter(id,idx)
-               idx=idx+1
+                idx=idx+1
 
     def initRecents(self):
-       self.recent =  QStringList()
-       try :
-       #if 1 :
-           rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
-           monFichier=rep+"/listefichiers_"+self.code
-           index=0
-           f=open(monFichier)
-           while ( index < 9) :
-              ligne=f.readline()
-              if ligne != "" :
-                 l=(ligne.split("\n"))[0]
-                 self.recent.append(l)
-              index=index+1
-       except :
-       #else :
-           pass
-
-       try    : f.close()
-       except : pass
+        self.recent =  QStringList()
+        try :
+        #if 1 :
+            rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
+            monFichier=rep+"/listefichiers_"+self.code
+            index=0
+            f=open(monFichier)
+            while ( index < 9) :
+                ligne=f.readline()
+                if ligne != "" :
+                    l=(ligne.split("\n"))[0]
+                    self.recent.append(l)
+                index=index+1
+        except :
+        #else :
+            pass
+
+        try    : f.close()
+        except : pass
 
     def addToRecentList(self, fn):
         """
@@ -370,24 +370,24 @@ class Appli(Ui_Eficas,QMainWindow):
             self.recent = self.recent[:9]
 
     def sauveRecents(self) :
-       try :
-         rep=self.CONFIGURATION.rep_user
-         monFichier=rep+"/listefichiers_"+self.code
-       except :
-         return
-       try :
+        try :
+            rep=self.CONFIGURATION.rep_user
+            monFichier=rep+"/listefichiers_"+self.code
+        except :
+            return
+        try :
             f=open(monFichier,'w')
             if len(self.recent) == 0 : return
             index=0
             while ( index <  len(self.recent)):
-              ligne=str(self.recent[index])+"\n"
-              f.write(ligne)
-              index=index+1
-       except :
+                ligne=str(self.recent[index])+"\n"
+                f.write(ligne)
+                index=index+1
+        except :
             pass
-       try :
+        try :
             f.close()
-       except :
+        except :
             pass
 
 
@@ -418,37 +418,37 @@ class Appli(Ui_Eficas,QMainWindow):
         repAide=os.path.dirname(os.path.abspath(__file__))
         maD=repAide+"/../Aide"
         try :
-          indexAide=maD+"/fichiers_EFICAS/index.html"
-          cmd="xdg-open "+indexAide
-          os.system(cmd)
+            indexAide=maD+"/fichiers_EFICAS/index.html"
+            cmd="xdg-open "+indexAide
+            os.system(cmd)
         except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
 
     def aideCode(self) :
         if self.code==None : return
         try :
         #if 1 :
-          cmd="xdg-open "+self.fileDoc
-          os.system(cmd)
+            cmd="xdg-open "+self.fileDoc
+            os.system(cmd)
         except:
         #else:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
 
     def optionEditeur(self) :
         try :
-           name='monOptions_'+self.code
+            name='monOptions_'+self.code
         except :
-           QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
-           return
+            QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
+            return
         try :
         #if 1:
-           optionCode=__import__(name)
+            optionCode=__import__(name)
         except :
         #else :
-           QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
-           return
+            QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
+            return
         monOption=optionCode.Options(parent=self,modal = 0 ,configuration=self.CONFIGURATION)
         monOption.show()
 
@@ -562,20 +562,20 @@ class Appli(Ui_Eficas,QMainWindow):
     def cleanPath(self):
         for pathCode in self.ListeCode:
             try:
-              aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
-              sys.path.remove(aEnlever)
+                aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
+                sys.path.remove(aEnlever)
             except :
-              pass
+                pass
         for pathCode in self.listeAEnlever:
             try:
-              sys.path.remove(aEnlever)
+                sys.path.remove(aEnlever)
             except :
-              pass
+                pass
 
 
     def closeEvent(self,event):
-      res=self.fileExit()
-      if res==2 : event.ignore()
+        res=self.fileExit()
+        if res==2 : event.ignore()
 
 if __name__=='__main__':
 
@@ -584,12 +584,12 @@ if __name__=='__main__':
     sys.path.append(rep)
     from Aster import prefsCode
     if hasattr(prefsCode,'encoding'):
-       # Hack pour changer le codage par defaut des strings
-       import sys
-       reload(sys)
-       sys.setdefaultencoding(prefsCode.encoding)
-       del sys.setdefaultencoding
-       # Fin hack
+        # Hack pour changer le codage par defaut des strings
+        import sys
+        reload(sys)
+        sys.setdefaultencoding(prefsCode.encoding)
+        del sys.setdefaultencoding
+        # Fin hack
 
     from Editeur import import_code
     from Editeur import session
index f6f227a71b2f252b28290561cdef1877e7a1146c..09f71537f773871be89b977407fad08714215910 100644 (file)
@@ -20,8 +20,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
@@ -33,115 +33,115 @@ from PyQt5.QtCore import Qt
 # Import des panels
 
 class SaisieValeur(object):
-  """
-  Classe contenant les methodes communes aux  panels
-  permettant de choisir des valeurs 
-  """
-  def __init__(self):
-       pass
+    """
+    Classe contenant les methodes communes aux  panels
+    permettant de choisir des valeurs
+    """
+    def __init__(self):
+        pass
 
 
-  def LEvaleurPressed(self,valeur=None):
-         #print('LEvaleurPressed', valeur, type(valeur))
-         if not hasattr(self, 'inSaisieValeur' ) : self.inSaisieValeur=False
-         if self.inSaisieValeur : return
-         self.inSaisieValeur=True
+    def LEvaleurPressed(self,valeur=None):
+        #print('LEvaleurPressed', valeur, type(valeur))
+        if not hasattr(self, 'inSaisieValeur' ) : self.inSaisieValeur=False
+        if self.inSaisieValeur : return
+        self.inSaisieValeur=True
 
-         if valeur == None :
+        if valeur == None :
             try :
-              nouvelleValeur=str(self.lineEditVal.text())
+                nouvelleValeur=str(self.lineEditVal.text())
             except UnicodeEncodeError as e :
-               self.editor.afficheInfos("pb d encoding", Qt.red)
-               validite,commentaire=self.politique.recordValeur(None)
-               self.lineEditVal.setText('')
-               self.setValide()
-               self.inSaisieValeur=False
-               return
-         else :
-            try : 
-              # la 1 ligne est tres bizarre. remplacee par le 3nd le 01 10 19
-              #if hasattr(self,"lineEditVal"):self.lineEditVal.setText(tr(valeur.nom))
-              if hasattr(self,"lineEditVal") : self.lineEditVal.setText(tr(valeur))
-            except : 
-              if hasattr(self,"lineEditVal"):self.lineEditVal.setText(valeur)
+                self.editor.afficheInfos("pb d encoding", Qt.red)
+                validite,commentaire=self.politique.recordValeur(None)
+                self.lineEditVal.setText('')
+                self.setValide()
+                self.inSaisieValeur=False
+                return
+        else :
+            try :
+                # la 1 ligne est tres bizarre. remplacee par le 3nd le 01 10 19
+                #if hasattr(self,"lineEditVal"):self.lineEditVal.setText(tr(valeur.nom))
+                if hasattr(self,"lineEditVal") : self.lineEditVal.setText(tr(valeur))
+            except :
+                if hasattr(self,"lineEditVal"):self.lineEditVal.setText(valeur)
             nouvelleValeur=valeur
 
-         if self.node.item.definition.validators != None :
+        if self.node.item.definition.validators != None :
             if self.node.item.definition.validators.verifItem(nouvelleValeur) !=1 :
                 commentaire=self.node.item.definition.validators.infoErreurItem()
                 self.editor.afficheInfos(commentaire,Qt.red)
                 self.inSaisieValeur=False
                 return
 
-         nouvelleValeurFormat=self.politique.getValeurTexte(nouvelleValeur)
-         validite,commentaire=self.politique.recordValeur(nouvelleValeurFormat)
-         if commentaire != "" :
+        nouvelleValeurFormat=self.politique.getValeurTexte(nouvelleValeur)
+        validite,commentaire=self.politique.recordValeur(nouvelleValeurFormat)
+        if commentaire != "" :
             if validite :
                 self.editor.afficheCommentaire(commentaire)
             else :
                 self.editor.afficheInfos(commentaire,Qt.red)
-         self.inSaisieValeur=False
-         self.setValide()
+        self.inSaisieValeur=False
+        self.setValide()
 
 
 
-  def TraiteLEValeur(self,valeurTraitee=None) :
+    def TraiteLEValeur(self,valeurTraitee=None) :
         # lit la chaine entree dans le line edit
         # et la tranforme en chaine de valeurs
         # a traiter. renvoie eventuellement des complexes
         listeValeurs=[]
         if valeurTraitee == None :
-           valeurBrute=str(self.LEValeur.text())
+            valeurBrute=str(self.LEValeur.text())
         else :
-           valeurBrute=valeurTraitee
+            valeurBrute=valeurTraitee
         if valeurBrute == str("") : return listeValeurs,1
 
         try :
-            valeur=eval(valeurBrute,{})        
+            valeur=eval(valeurBrute,{})
         except :
             valeur=valeurBrute
 
         # pour traiter 11.0 - 30.0 pour le CIST
         #if (valeurTraitee and (type(valeurTraitee) in types.StringTypes) and (self.node.item.waitTxm())) :
         if (valeurTraitee and  isinstance(valeurTraitee, str)  and (self.node.item.waitTxm())) :
-           valeur=str(valeurTraitee)
+            valeur=str(valeurTraitee)
 
 
         if type(valeur)  in (list,tuple) :
-           if self.node.item.waitComplex() :
-              indice = 0
-              while (indice < len(valeur)):
-                 v=valeur[indice]
-
-                 if (v== 'RI' or v == 'MP'):
-                    try :
-                       t=tuple([v,valeur[indice+1],valeur[indice+2]])
-                       listeValeurs.append(t)
-                       indice=indice+3
-                    except :
-                       commentaire = tr("Veuillez entrer le complexe sous forme aster ou sous forme python")
-                       self.editor.afficheInfos(commentaire)
-                       return listeValeurs,0
-                       
-
-                 else :     # ce n'est pas un tuple a la mode aster
-                    listeValeurs.append(v)
-                    indice = indice + 1
-
-           else:  # on n'attend pas un complexe
-             listeValeurs=valeurBrute.split(',')
+            if self.node.item.waitComplex() :
+                indice = 0
+                while (indice < len(valeur)):
+                    v=valeur[indice]
+
+                    if (v== 'RI' or v == 'MP'):
+                        try :
+                            t=tuple([v,valeur[indice+1],valeur[indice+2]])
+                            listeValeurs.append(t)
+                            indice=indice+3
+                        except :
+                            commentaire = tr("Veuillez entrer le complexe sous forme aster ou sous forme python")
+                            self.editor.afficheInfos(commentaire)
+                            return listeValeurs,0
+
+
+                    else :     # ce n'est pas un tuple a la mode aster
+                        listeValeurs.append(v)
+                        indice = indice + 1
+
+            else:  # on n'attend pas un complexe
+                listeValeurs=valeurBrute.split(',')
 
         elif type(valeur) == bytes:
-             listeValeurs=valeur.split(',')
+            listeValeurs=valeur.split(',')
         else:
-          #listeValeurs.append(valeurBrute)
-          listeValeurs.append(valeur)
+            #listeValeurs.append(valeurBrute)
+            listeValeurs.append(valeur)
 
         return listeValeurs,1
 
 class SaisieSDCO(object) :
 
-  def LESDCOReturnPressed(self):
+    def LESDCOReturnPressed(self):
         """
            Lit le nom donne par l'utilisateur au concept de type CO qui doit être
            la valeur du MCS courant et stocke cette valeur
@@ -149,20 +149,19 @@ class SaisieSDCO(object) :
         self.editor.initModif()
         anc_val = self.node.item.getValeur()
         if anc_val != None:
-          # il faut egalement propager la destruction de l'ancien concept
-          self.node.item.deleteValeurCo(valeur=anc_val)
-          # et on force le recalcul des concepts de sortie de l'etape
-          self.node.item.object.etape.getType_produit(force=1)
-          # et le recalcul du contexte
-          self.node.item.object.etape.parent.resetContext()
+            # il faut egalement propager la destruction de l'ancien concept
+            self.node.item.deleteValeurCo(valeur=anc_val)
+            # et on force le recalcul des concepts de sortie de l'etape
+            self.node.item.object.etape.getType_produit(force=1)
+            # et le recalcul du contexte
+            self.node.item.object.etape.parent.resetContext()
         nomConcept = str(self.LESDCO.text())
         if nomConcept == "" : return
 
         test,commentaire=self.node.item.setValeurCo(nomConcept)
         if test:
-           commentaire=tr("Valeur du mot-clef enregistree")
-           self.node.updateNodeValid()
+            commentaire=tr("Valeur du mot-clef enregistree")
+            self.node.updateNodeValid()
         else :
-           cr = self.node.item.getCr()
-           commentaire = tr("Valeur du mot-clef non autorisee :")+cr.getMessFatal()
-                                                                                         
+            cr = self.node.item.getCr()
+            commentaire = tr("Valeur du mot-clef non autorisee :")+cr.getMessFatal()
index 3937d81be4d6297bde1facfcf200ceac5a3c954b..7543b2b63db36717ccc88ced2e0bf9007d900920 100644 (file)
@@ -26,8 +26,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os, sys
@@ -48,349 +48,349 @@ from Extensions.eficas_exception import EficasException
 class ReaderCataCommun(object):
 #-------------------------------
 
-   def askChoixCatalogue(self, cataListeChoix):
-   # ____________________________________________
-      """
-      Ouvre une fenetre de selection du catalogue dans le cas où plusieurs
-      ont ete definis dans Accas/editeur.ini
-      """
-      try : 
-         from PyQt5.QtWidgets import QDialog
-      except : 
-         print ('Pas de choix interactif sans qt')
-         return
-
-      code = getattr(self.appliEficas.maConfiguration, "code", None)
-      if code != None :
-          title=tr("Choix d une version du code ")+str(code)
-      else :
-          title=tr("Choix d une version ")
-
-      from InterfaceQT4.monChoixCata import MonChoixCata
-      widgetChoix = MonChoixCata(self.appliEficas, [cata.labelCode for cata in cataListeChoix], title)
-      ret=widgetChoix.exec_()
-
-
-      lab=str(self.VERSION_EFICAS)+" "
-      lab+=tr(" pour ")
-      lab+=str(self.code)
-      lab+=tr(" avec le catalogue ")
-      if ret == QDialog.Accepted:
-          cata = cataListeChoix[widgetChoix.CBChoixCata.currentIndex()]
-          self.fichierCata = cata.fichierCata
-          self.labelCode   = cata.labelCode
-          self.appliEficas.formatFichierOut = cata.formatFichierOut
-          self.appliEficas.formatFichierIn  = cata.formatFichierIn
-          lab+=self.labelCode
-          self.appliEficas.setWindowTitle(lab)
-          widgetChoix.close()
-      else:
-          widgetChoix.close()
-          raise EficasException()
-
-   def choisitCata(self):
-   # ____________________
-
-      listeCataPossibles=[]
-      self.Commandes_Ordre_Catalogue=[]
-
-
-      listeTousLesCatas = []
-      for catalogue in self.appliEficas.maConfiguration.catalogues:
-          if isinstance(catalogue, CatalogDescription): listeTousLesCatas.append(catalogue)
-          elif isinstance(catalogue, tuple)           : listeTousLesCatas.append(CatalogDescription.createFromTuple(catalogue))
-          else: print(("Catalog description cannot be interpreted: ", catalogue))
-
-      # This filter is only useful for codes that have subcodes (like MAP).
-      # Otherwise, the "code" attribute of the catalog description can (should) be None.
-      if self.ssCode is None: listeCataPossibles = listeTousLesCatas
-      else:
-          for catalogue in listeTousLesCatas:
-             if catalogue.code == self.code and catalogue.ssCode == self.ssCode: listeCataPossibles.append(catalogue)
-
-      # le catalogue est fixe dans la ligne de commande
-      if self.appliEficas.fichierCata != None : 
-         trouve=False
-         for catalogue in listeTousLesCatas: 
-             if os.path.abspath(catalogue.fichierCata) ==  (os.path.abspath(self.appliEficas.fichierCata)) :
-                listeCataPossibles=(catalogue,)
-                trouve=True
-                break
-         if not trouve:
+    def askChoixCatalogue(self, cataListeChoix):
+    # ____________________________________________
+        """
+        Ouvre une fenetre de selection du catalogue dans le cas où plusieurs
+        ont ete definis dans Accas/editeur.ini
+        """
+        try :
+            from PyQt5.QtWidgets import QDialog
+        except :
+            print ('Pas de choix interactif sans qt')
+            return
+
+        code = getattr(self.appliEficas.maConfiguration, "code", None)
+        if code != None :
+            title=tr("Choix d une version du code ")+str(code)
+        else :
+            title=tr("Choix d une version ")
+
+        from InterfaceQT4.monChoixCata import MonChoixCata
+        widgetChoix = MonChoixCata(self.appliEficas, [cata.labelCode for cata in cataListeChoix], title)
+        ret=widgetChoix.exec_()
+
+
+        lab=str(self.VERSION_EFICAS)+" "
+        lab+=tr(" pour ")
+        lab+=str(self.code)
+        lab+=tr(" avec le catalogue ")
+        if ret == QDialog.Accepted:
+            cata = cataListeChoix[widgetChoix.CBChoixCata.currentIndex()]
+            self.fichierCata = cata.fichierCata
+            self.labelCode   = cata.labelCode
+            self.appliEficas.formatFichierOut = cata.formatFichierOut
+            self.appliEficas.formatFichierIn  = cata.formatFichierIn
+            lab+=self.labelCode
+            self.appliEficas.setWindowTitle(lab)
+            widgetChoix.close()
+        else:
+            widgetChoix.close()
+            raise EficasException()
+
+    def choisitCata(self):
+    # ____________________
+
+
+        listeCataPossibles=[]
+        self.Commandes_Ordre_Catalogue=[]
+
+
+        listeTousLesCatas = []
+        for catalogue in self.appliEficas.maConfiguration.catalogues:
+            if isinstance(catalogue, CatalogDescription): listeTousLesCatas.append(catalogue)
+            elif isinstance(catalogue, tuple)           : listeTousLesCatas.append(CatalogDescription.createFromTuple(catalogue))
+            else: print(("Catalog description cannot be interpreted: ", catalogue))
+
+        # This filter is only useful for codes that have subcodes (like MAP).
+        # Otherwise, the "code" attribute of the catalog description can (should) be None.
+        if self.ssCode is None: listeCataPossibles = listeTousLesCatas
+        else:
+            for catalogue in listeTousLesCatas:
+                if catalogue.code == self.code and catalogue.ssCode == self.ssCode: listeCataPossibles.append(catalogue)
+
+        # le catalogue est fixe dans la ligne de commande
+        if self.appliEficas.fichierCata != None :
+            trouve=False
+            for catalogue in listeTousLesCatas:
+                if os.path.abspath(catalogue.fichierCata) ==  (os.path.abspath(self.appliEficas.fichierCata)) :
+                    listeCataPossibles=(catalogue,)
+                    trouve=True
+                    break
+            if not trouve:
                 catalogue=CatalogDescription.createFromTuple((self.code ,self.code,self.appliEficas.fichierCata,'python','python'))
                 listeCataPossibles=(catalogue,)
-             
-
-      if len(listeCataPossibles)==0:
-          try : 
-             from PyQt5.QtWidgets import QMessageBox, QDialog
-             QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
-                               tr("Pas de catalogue defini pour le code ") + self.code)
-          except : 
-             print ("Pas de catalogue defini pour le code " + self.code)
-          self.appliEficas.close()
-          if self.appliEficas.salome == 0 : sys.exit(1)
-          return
-
-
-      # le label est fixe dans la ligne de commande
-      if self.labelCode is not None:
-          # La version a ete fixee
-          for cata in listeCataPossibles:
-             if self.labelCode == cata.labelCode:
-                self.fichierCata = cata.fichierCata
-                self.appliEficas.formatFichierIn  = cata.formatFichierIn
-                self.appliEficas.formatFichierOut = cata.formatFichierOut
-      else:
-          cataListeChoix = []
-          for cata in listeCataPossibles:
-              if cata.default : cataListeChoix.insert(0, cata)
-              else            : cataListeChoix.append(cata)
-
-          if len(cataListeChoix) == 0:
-              try : 
-                from PyQt5.QtWidgets import QMessageBox
+
+
+        if len(listeCataPossibles)==0:
+            try :
+                from PyQt5.QtWidgets import QMessageBox, QDialog
                 QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
-                                   tr("Aucun catalogue trouve"))
-              except :
+                                  tr("Pas de catalogue defini pour le code ") + self.code)
+            except :
                 print ("Pas de catalogue defini pour le code " + self.code)
-              self.appliEficas.close()
-              if self.appliEficas.salome == 0 : sys.exit(1)
-
-          elif len(cataListeChoix) == 1:
-              self.fichierCata = cataListeChoix[0].fichierCata
-              self.labelCode   = cataListeChoix[0].labelCode
-              self.appliEficas.formatFichierOut = cataListeChoix[0].formatFichierOut
-              self.appliEficas.formatFichierIn  = cataListeChoix[0].formatFichierIn
-
-          else:
-              # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
-              # lequel il veut utiliser ...
-              if self.appliEficas.ssIhm : 
-                 print ('Unable to know which catafile is choosen')
-                 exit()
-              self.askChoixCatalogue(cataListeChoix)
-              self.demandeCatalogue=True
-
-      if self.fichierCata == None :
-          if self.appliEficas.salome == 0 :
-             print(("Pas de catalogue pour code %s, version %s" %(self.code,self.labelCode)))
-             sys.exit(1)
-          else :
-             self.appliEficas.close()
-             return
+            self.appliEficas.close()
+            if self.appliEficas.salome == 0 : sys.exit(1)
+            return
+
+
+        # le label est fixe dans la ligne de commande
+        if self.labelCode is not None:
+            # La version a ete fixee
+            for cata in listeCataPossibles:
+                if self.labelCode == cata.labelCode:
+                    self.fichierCata = cata.fichierCata
+                    self.appliEficas.formatFichierIn  = cata.formatFichierIn
+                    self.appliEficas.formatFichierOut = cata.formatFichierOut
+        else:
+            cataListeChoix = []
+            for cata in listeCataPossibles:
+                if cata.default : cataListeChoix.insert(0, cata)
+                else            : cataListeChoix.append(cata)
+
+            if len(cataListeChoix) == 0:
+                try :
+                    from PyQt5.QtWidgets import QMessageBox
+                    QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
+                                       tr("Aucun catalogue trouve"))
+                except :
+                    print ("Pas de catalogue defini pour le code " + self.code)
+                self.appliEficas.close()
+                if self.appliEficas.salome == 0 : sys.exit(1)
+
+            elif len(cataListeChoix) == 1:
+                self.fichierCata = cataListeChoix[0].fichierCata
+                self.labelCode   = cataListeChoix[0].labelCode
+                self.appliEficas.formatFichierOut = cataListeChoix[0].formatFichierOut
+                self.appliEficas.formatFichierIn  = cataListeChoix[0].formatFichierIn
+
+            else:
+                # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
+                # lequel il veut utiliser ...
+                if self.appliEficas.ssIhm :
+                    print ('Unable to know which catafile is choosen')
+                    exit()
+                self.askChoixCatalogue(cataListeChoix)
+                self.demandeCatalogue=True
+
+        if self.fichierCata == None :
+            if self.appliEficas.salome == 0 :
+                print(("Pas de catalogue pour code %s, version %s" %(self.code,self.labelCode)))
+                sys.exit(1)
+            else :
+                self.appliEficas.close()
+                return
 
 
 #------------------------------------
 class ReaderCata (ReaderCataCommun):
 #------------------------------------
 
-   def __init__(self,QWParent, appliEficas):
-   # _______________________________________
-
-     
-      self.QWParent=QWParent
-      self.appliEficas=self.QWParent.appliEficas
-      self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
-      self.demandeCatalogue=False
-      self.code=self.appliEficas.code
-      self.ssCode=self.appliEficas.ssCode
-      # on positionne par defaut mais est-ce vraiment necessaire
-      self.appliEficas.formatFichierIn='python'
-      self.appliEficas.formatFichierOut='python'
-      self.labelCode=self.appliEficas.labelCode
-      self.fichierCata=self.appliEficas.fichierCata
-      self.openCata()
-      self.traiteIcones()
-      self.cataitem=None
-      self.creeDicoInverse()
-      if self.code=="TELEMAC": self.creeDicoCasToCata()
-
-
-   def openCata(self):
-      """
-          Ouvre le catalogue standard du code courant, cad le catalogue present
-          dans le repertoire Cata
-      """
-      # import du catalogue
-      self.choisitCata()
-
-      self.cata = self.importCata(self.fichierCata)
-      if self.code == 'NonConnu' : self.code = self.cata.JdC.code
-      modeleMetier = None
-      dicoEltDif = {}
-      if not (self.appliEficas.genereXSD) :
-         if (self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD)  :
-           try :
-             import pyxb
-           except :
-             self.QWParent.informe('environnement', 'please source pyxb environment')
-             exit()
-           try : 
-           #if 1 :
-             nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0]
-             fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0]  
-             nomCataXsd = fichierCataTrunc+'_driver' 
-             pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py'
-             import imp
-             modeleMetier= imp.load_source(nomCataXsd,pathCata)
-             #print ('nomCataXsd , pathCata ',nomCataXsd,pathCata)
-             try : 
-               monObjetAnnotation = getattr(modeleMetier,'PNEFdico_'+self.code)
-               texte=monObjetAnnotation.__doc__
-             except : 
-               texte=None
-             if texte != None and texte != "":
-                l={}
-                texte='dicoEltDif = '+ texte
-                exec (texte, globals(),l)
-                dicoEltDif=l['dicoEltDif']
-             #print ('dans readerCata _________', dicoEltDif)
-             
-           except :
-           #else :
-             if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ')
-             self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False)
-             modeleMetier = None
-
-      self.cata.DicoNomTypeDifferentNomElt=dicoEltDif
-
-      if hasattr(self.cata, 'implement'): self.cata.JdC.implement = self.cata.implement
-      else : self.cata.JdC.implement = ""
-      if hasattr(self.cata, 'importedBy'): self.cata.JdC.importedBy = self.cata.importedBy
-      else : self.cata.JdC.importedBy = [] 
-      self.cata.JdC.labelCode = self.labelCode 
-      if not(hasattr(self.cata, 'dict_condition')): self.cata.dict_condition = {}
-      
-      # pointeur pour le dumpXSD
-      self.cata.JdC.cata=self.cata
-      
-      self.cata.modeleMetier = modeleMetier
-      if not self.cata :
-          #try:
-            #from PyQt5.QtWidgets import QMessageBox, QDialog
-            #QMessageBox.critical( self.QWParent, tr("Import du catalogue"),tr("Impossible d'importer le catalogue ")+ self.fichierCata)
-          #except : 
-          #  print ("Impossible d'importer le catalogue "+ self.fichierCata)
-          self.QWParent.informe("Catalogue","Impossible d'importer le catalogue "+ self.fichierCata)
-          self.appliEficas.close()
-          if self.appliEficas.salome == 0 :
-             sys.exit(1)
-      #
-      # analyse du catalogue (ordre des mots-cles)
-      #
-      # retrouveOrdreCataStandard fait une analyse textuelle du catalogue
-      # remplace par retrouveOrdreCataStandardAutre qui utilise une numerotation
-      # des mots cles a la creation
-      #print (dir(self.cata))
-      self.retrouveOrdreCataStandardAutre()
-      if self.appliEficas.maConfiguration.modeNouvCommande == "initial" : self.retrouveOrdreCataStandard()
-      if hasattr(self.cata, 'Ordre_Des_Commandes') : self.Ordre_Des_Commandes=self.cata.Ordre_Des_Commandes
-      else : self.Ordre_Des_Commandes=None
-
-      if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') :
-             self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
-      else : self.Classement_Commandes_Ds_Arbre=()
-      if hasattr(self.cata,'enum'):
-         try :
-           _temp= __import__(self.cata.enum,globals(), locals(), ['DicoEnumCasFrToEnumCasEn', 'TelemacdicoEn'], 0)
-           self.DicoEnumCasFrToEnumCasEn = _temp.DicoEnumCasFrToEnumCasEn
-           self.TelemacdicoEn = _temp.TelemacdicoEn
-         except : pass
-
-      #print self.cata.Ordre_Des_Commandes
-
-      #
-      # analyse des donnees liees l'IHM : UIinfo
-      #
-      uiinfo.traite_UIinfo(self.cata)
-
-      #
-      # traitement des clefs documentaires
-      #
-
-      self.titre=self.VERSION_EFICAS+" "+tr( " avec le catalogue ") + os.path.basename(self.fichierCata)
-      if self.appliEficas.ssIhm == False : self.appliEficas.setWindowTitle(self.titre)
-      self.appliEficas.titre=self.titre
-      self.QWParent.titre=self.titre
-
-
-   def importCata(self,cata):
-      """
-          Realise l'import du catalogue dont le chemin d'acces est donne par cata
-      """
-      nom_cata = os.path.splitext(os.path.basename(cata))[0]
-      rep_cata = os.path.dirname(cata)
-      sys.path[:0] = [rep_cata]
-      self.appliEficas.listeAEnlever.append(rep_cata)
-
-      # PNPNPN pas propre __ A reflechir
-      if 'cata_Vimmp' in list(sys.modules.keys()) :
-          del sys.modules['cata_Vimmp']
-
-      if nom_cata in list(sys.modules.keys()) :
-        del sys.modules[nom_cata]
-
-      for k in sys.modules:
-        if k[0:len(nom_cata)+1] == nom_cata+'.':
-          del sys.modules[k]
-
-      mesScriptsNomFichier='mesScripts_'+self.code.upper()
-      try :
-          self.appliEficas.mesScripts[self.code]=__import__(mesScriptsNomFichier)
-      except:
-          pass
-
-      #if 1 :
-      try :
-          o=__import__(nom_cata)
-          return o
-      except Exception as e:
-          self.QWParent.informe('catalog', 'unable to load catalog file')
-          import traceback
-          traceback.print_exc()
-          return 0
-
-
-
-   def retrouveOrdreCataStandardAutre(self):
-      """
-          Construit une structure de donnees dans le catalogue qui permet
-          a EFICAS de retrouver l'ordre des mots-cles dans le texte du catalogue.
-          Pour chaque entite du catlogue on cree une liste de nom ordre_mc qui
-          contient le nom des mots cles dans le bon ordre
-      """
-      self.cata_ordonne_dico, self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
-      #print ('_________________________________________', self)
-      #print (self.cata_ordonne_dico)
-      #self.appliEficas.liste_simp_reel = ()
-      #self.cata_ordonne_dico = {}
-
-   def retrouveOrdreCataStandard(self):
-      """
-          Retrouve l'ordre des mots-cles dans le catalogue, cad :
-          Attention s appuie sur les commentaires
-      """
-      nom_cata = os.path.splitext(os.path.basename(self.fichierCata))[0]
-      rep_cata = os.path.dirname(self.fichierCata)
-      self.Commandes_Ordre_Catalogue = analyse_catalogue_initial.analyseCatalogue(self.fichierCata)
-      #print self.Commandes_Ordre_Catalogue
-
-   def traiteIcones(self):
-      if self.appliEficas.maConfiguration.ficIcones==None : return
-      try:
-        ficIcones=self.appliEficas.maConfiguration.ficIcones
-        fichierIcones = __import__(ficIcones, globals(), locals(), [], 0)
-        self.appliEficas.maConfiguration.dicoIcones=fichierIcones.dicoDesIcones.dicoIcones
-        self.appliEficas.maConfiguration.dicoImages=fichierIcones.dicoDesIcones.dicoImages
-      except:
-        print ("Pas de fichier associe contenant des liens sur les icones ")
-        self.appliEficas.maConfiguration.dicoIcones={}
-
-
-
-   def creeDicoInverse(self):
+    def __init__(self,QWParent, appliEficas):
+    # _______________________________________
+
+
+        self.QWParent=QWParent
+        self.appliEficas=self.QWParent.appliEficas
+        self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
+        self.demandeCatalogue=False
+        self.code=self.appliEficas.code
+        self.ssCode=self.appliEficas.ssCode
+        # on positionne par defaut mais est-ce vraiment necessaire
+        self.appliEficas.formatFichierIn='python'
+        self.appliEficas.formatFichierOut='python'
+        self.labelCode=self.appliEficas.labelCode
+        self.fichierCata=self.appliEficas.fichierCata
+        self.openCata()
+        self.traiteIcones()
+        self.cataitem=None
+        self.creeDicoInverse()
+        if self.code=="TELEMAC": self.creeDicoCasToCata()
+
+
+    def openCata(self):
+        """
+            Ouvre le catalogue standard du code courant, cad le catalogue present
+            dans le repertoire Cata
+        """
+        # import du catalogue
+        self.choisitCata()
+
+        self.cata = self.importCata(self.fichierCata)
+        if self.code == 'NonConnu' : self.code = self.cata.JdC.code
+        modeleMetier = None
+        dicoEltDif = {}
+        if not (self.appliEficas.genereXSD) :
+            if (self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD)  :
+                try :
+                    import pyxb
+                except :
+                    self.QWParent.informe('environnement', 'please source pyxb environment')
+                    exit()
+                try :
+                #if 1 :
+                    nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0]
+                    fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0]
+                    nomCataXsd = fichierCataTrunc+'_driver'
+                    pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py'
+                    import imp
+                    modeleMetier= imp.load_source(nomCataXsd,pathCata)
+                    #print ('nomCataXsd , pathCata ',nomCataXsd,pathCata)
+                    try :
+                        monObjetAnnotation = getattr(modeleMetier,'PNEFdico_'+self.code)
+                        texte=monObjetAnnotation.__doc__
+                    except :
+                        texte=None
+                    if texte != None and texte != "":
+                        l={}
+                        texte='dicoEltDif = '+ texte
+                        exec (texte, globals(),l)
+                        dicoEltDif=l['dicoEltDif']
+                    #print ('dans readerCata _________', dicoEltDif)
+
+                except :
+                #else :
+                    if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ')
+                    self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False)
+                    modeleMetier = None
+
+        self.cata.DicoNomTypeDifferentNomElt=dicoEltDif
+
+        if hasattr(self.cata, 'implement'): self.cata.JdC.implement = self.cata.implement
+        else : self.cata.JdC.implement = ""
+        if hasattr(self.cata, 'importedBy'): self.cata.JdC.importedBy = self.cata.importedBy
+        else : self.cata.JdC.importedBy = []
+        self.cata.JdC.labelCode = self.labelCode
+        if not(hasattr(self.cata, 'dict_condition')): self.cata.dict_condition = {}
+
+        # pointeur pour le dumpXSD
+        self.cata.JdC.cata=self.cata
+
+        self.cata.modeleMetier = modeleMetier
+        if not self.cata :
+            #try:
+              #from PyQt5.QtWidgets import QMessageBox, QDialog
+              #QMessageBox.critical( self.QWParent, tr("Import du catalogue"),tr("Impossible d'importer le catalogue ")+ self.fichierCata)
+            #except :
+            #  print ("Impossible d'importer le catalogue "+ self.fichierCata)
+            self.QWParent.informe("Catalogue","Impossible d'importer le catalogue "+ self.fichierCata)
+            self.appliEficas.close()
+            if self.appliEficas.salome == 0 :
+                sys.exit(1)
+        #
+        # analyse du catalogue (ordre des mots-cles)
+        #
+        # retrouveOrdreCataStandard fait une analyse textuelle du catalogue
+        # remplace par retrouveOrdreCataStandardAutre qui utilise une numerotation
+        # des mots cles a la creation
+        #print (dir(self.cata))
+        self.retrouveOrdreCataStandardAutre()
+        if self.appliEficas.maConfiguration.modeNouvCommande == "initial" : self.retrouveOrdreCataStandard()
+        if hasattr(self.cata, 'Ordre_Des_Commandes') : self.Ordre_Des_Commandes=self.cata.Ordre_Des_Commandes
+        else : self.Ordre_Des_Commandes=None
+
+        if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') :
+            self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
+        else : self.Classement_Commandes_Ds_Arbre=()
+        if hasattr(self.cata,'enum'):
+            try :
+                _temp= __import__(self.cata.enum,globals(), locals(), ['DicoEnumCasFrToEnumCasEn', 'TelemacdicoEn'], 0)
+                self.DicoEnumCasFrToEnumCasEn = _temp.DicoEnumCasFrToEnumCasEn
+                self.TelemacdicoEn = _temp.TelemacdicoEn
+            except : pass
+
+        #print self.cata.Ordre_Des_Commandes
+
+        #
+        # analyse des donnees liees l'IHM : UIinfo
+        #
+        uiinfo.traite_UIinfo(self.cata)
+
+        #
+        # traitement des clefs documentaires
+        #
+
+        self.titre=self.VERSION_EFICAS+" "+tr( " avec le catalogue ") + os.path.basename(self.fichierCata)
+        if self.appliEficas.ssIhm == False : self.appliEficas.setWindowTitle(self.titre)
+        self.appliEficas.titre=self.titre
+        self.QWParent.titre=self.titre
+
+
+    def importCata(self,cata):
+        """
+            Realise l'import du catalogue dont le chemin d'acces est donne par cata
+        """
+        nom_cata = os.path.splitext(os.path.basename(cata))[0]
+        rep_cata = os.path.dirname(cata)
+        sys.path[:0] = [rep_cata]
+        self.appliEficas.listeAEnlever.append(rep_cata)
+
+        # PNPNPN pas propre __ A reflechir
+        if 'cata_Vimmp' in list(sys.modules.keys()) :
+            del sys.modules['cata_Vimmp']
+
+        if nom_cata in list(sys.modules.keys()) :
+            del sys.modules[nom_cata]
+
+        for k in sys.modules:
+            if k[0:len(nom_cata)+1] == nom_cata+'.':
+                del sys.modules[k]
+
+        mesScriptsNomFichier='mesScripts_'+self.code.upper()
+        try :
+            self.appliEficas.mesScripts[self.code]=__import__(mesScriptsNomFichier)
+        except:
+            pass
+
+        #if 1 :
+        try :
+            o=__import__(nom_cata)
+            return o
+        except Exception as e:
+            self.QWParent.informe('catalog', 'unable to load catalog file')
+            import traceback
+            traceback.print_exc()
+            return 0
+
+
+
+    def retrouveOrdreCataStandardAutre(self):
+        """
+            Construit une structure de donnees dans le catalogue qui permet
+            a EFICAS de retrouver l'ordre des mots-cles dans le texte du catalogue.
+            Pour chaque entite du catlogue on cree une liste de nom ordre_mc qui
+            contient le nom des mots cles dans le bon ordre
+        """
+        self.cata_ordonne_dico, self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
+        #print ('_________________________________________', self)
+        #print (self.cata_ordonne_dico)
+        #self.appliEficas.liste_simp_reel = ()
+        #self.cata_ordonne_dico = {}
+
+    def retrouveOrdreCataStandard(self):
+        """
+            Retrouve l'ordre des mots-cles dans le catalogue, cad :
+            Attention s appuie sur les commentaires
+        """
+        nom_cata = os.path.splitext(os.path.basename(self.fichierCata))[0]
+        rep_cata = os.path.dirname(self.fichierCata)
+        self.Commandes_Ordre_Catalogue = analyse_catalogue_initial.analyseCatalogue(self.fichierCata)
+        #print self.Commandes_Ordre_Catalogue
+
+    def traiteIcones(self):
+        if self.appliEficas.maConfiguration.ficIcones==None : return
+        try:
+            ficIcones=self.appliEficas.maConfiguration.ficIcones
+            fichierIcones = __import__(ficIcones, globals(), locals(), [], 0)
+            self.appliEficas.maConfiguration.dicoIcones=fichierIcones.dicoDesIcones.dicoIcones
+            self.appliEficas.maConfiguration.dicoImages=fichierIcones.dicoDesIcones.dicoImages
+        except:
+            print ("Pas de fichier associe contenant des liens sur les icones ")
+            self.appliEficas.maConfiguration.dicoIcones={}
+
+
+
+    def creeDicoInverse(self):
         self.dicoInverse={}
         self.dicoMC={}
         listeEtapes=self.cata.JdC.commandes
@@ -398,48 +398,47 @@ class ReaderCata (ReaderCataCommun):
             self.traiteEntite(e)
 
 
-   def creeDicoCasToCata(self):
-      if hasattr(self.cata,'dicoCasEn'):
-        _temp= __import__(self.cata.dicoCasEn,globals(), locals(), ['DicoCasEnToCata'], 0)
-        if self.appliEficas.langue=="ang" :
-           self.dicoCasToCata=_temp.dicoCasEnToCata
-        else :
-           self.dicoCasToCata=_temp.dicoCasFrToCata
+    def creeDicoCasToCata(self):
+        if hasattr(self.cata,'dicoCasEn'):
+            _temp= __import__(self.cata.dicoCasEn,globals(), locals(), ['DicoCasEnToCata'], 0)
+            if self.appliEficas.langue=="ang" :
+                self.dicoCasToCata=_temp.dicoCasEnToCata
+            else :
+                self.dicoCasToCata=_temp.dicoCasFrToCata
 
 
 
-   def traiteEntite(self,e):
-       boolIn=0
-       for (nomFils, fils) in list(e.entites.items()) :
-          self.dicoMC[nomFils]=fils
-          self.traiteEntite(fils)
-          boolIn=1
-       if boolIn==0 :
-          liste=[]
-          moi=e
-          while hasattr(moi,'pere') :
+    def traiteEntite(self,e):
+        boolIn=0
+        for (nomFils, fils) in list(e.entites.items()) :
+            self.dicoMC[nomFils]=fils
+            self.traiteEntite(fils)
+            boolIn=1
+        if boolIn==0 :
+            liste=[]
+            moi=e
+            while hasattr(moi,'pere') :
                 liste.append((moi.nom,moi))
                 moi=moi.pere
-          liste.append((moi.nom,moi))
-          self.dicoInverse[e.nom]=liste
-          self.dicoInverse[tr(e.nom)]=liste
-
-   def creeRubrique(self,e,dico, niveau):
-       from Accas import A_BLOC
-       decale=niveau*"   "
-       #if niveau != 0 :
-       #    if isinstance(e,A_BLOC.BLOC): print decale, e.condition
-       #    else :                           print decale, e. nom
-       for (nom, fils) in list(e.entites.items()) :
-           if  list(fils.entites.items()) != [] : self.creeRubrique(fils,dico,niveau+1)
-           #else : print (niveau+1)*"   ", nom
-
-
-   def dumpToXsdEficas(self):
-       # Pas sur qu on ait jamais besoin de cela
-       pass
-       #from Efi2Xsd import readerEfficas
-       #newSchema=   xml = open('Cata_MED_FAM.xml').read()
-       #SchemaMed = efficas.CreateFromDocument(xml)
-       #SchemaMed.alimenteCata(self.cata)
-
+            liste.append((moi.nom,moi))
+            self.dicoInverse[e.nom]=liste
+            self.dicoInverse[tr(e.nom)]=liste
+
+    def creeRubrique(self,e,dico, niveau):
+        from Accas import A_BLOC
+        decale=niveau*"   "
+        #if niveau != 0 :
+        #    if isinstance(e,A_BLOC.BLOC): print decale, e.condition
+        #    else :                           print decale, e. nom
+        for (nom, fils) in list(e.entites.items()) :
+            if  list(fils.entites.items()) != [] : self.creeRubrique(fils,dico,niveau+1)
+            #else : print (niveau+1)*"   ", nom
+
+
+    def dumpToXsdEficas(self):
+        # Pas sur qu on ait jamais besoin de cela
+        pass
+        #from Efi2Xsd import readerEfficas
+        #newSchema=   xml = open('Cata_MED_FAM.xml').read()
+        #SchemaMed = efficas.CreateFromDocument(xml)
+        #SchemaMed.alimenteCata(self.cata)
index 9282b62261d76d381ad103d9342b75066f931763..98cd309f5c2bbf4a4d91a61e39cc7dc0ceb493b9 100644 (file)
@@ -40,45 +40,45 @@ from readercata import ReaderCataCommun
 
 class ReaderCata (ReaderCataCommun):
 
-   def __init__(self,QWParent, appliEficas):
-      self.QWParent=QWParent
-      self.appliEficas=appliEficas
-      self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
-      self.code=self.appliEficas.code
-      self.ssCode=self.appliEficas.ssCode
-      # PN ?? bizarre le 22/04/20
-      self.appliEficas.formatfichierOut='python'
-      self.appliEficas.formatfichierIn ='xml'
-      self.modeNouvCommande=self.appliEficas.maConfiguration.modeNouvCommande
-      self.labelCode=self.appliEficas.labelCode
-      self.version_cata=None
-      self.ficCata=None
-      self.OpenCata()
-      self.cataitem=None
-      self.titre='Eficas XML'
-      self.Ordre_Des_Commandes=None
-      self.Classement_Commandes_Ds_Arbre=()
-      self.demandeCatalogue=False
+    def __init__(self,QWParent, appliEficas):
+        self.QWParent=QWParent
+        self.appliEficas=appliEficas
+        self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
+        self.code=self.appliEficas.code
+        self.ssCode=self.appliEficas.ssCode
+        # PN ?? bizarre le 22/04/20
+        self.appliEficas.formatfichierOut='python'
+        self.appliEficas.formatfichierIn ='xml'
+        self.modeNouvCommande=self.appliEficas.maConfiguration.modeNouvCommande
+        self.labelCode=self.appliEficas.labelCode
+        self.version_cata=None
+        self.ficCata=None
+        self.OpenCata()
+        self.cataitem=None
+        self.titre='Eficas XML'
+        self.Ordre_Des_Commandes=None
+        self.Classement_Commandes_Ds_Arbre=()
+        self.demandeCatalogue=False
 
-      #self.traiteIcones()
-      #self.creeDicoInverse()
+        #self.traiteIcones()
+        #self.creeDicoInverse()
 
 
-   def OpenCata(self):
+    def OpenCata(self):
 
-      #self.ficCata = 'Cata_MED_FAM.xml'
-      #xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
-      #xml = open('/home/A96028/QT5GitEficasTravail/eficas/CataTestXSD/cata_test1.xml').read()
-      self.choisitCata()
-      xml=open(self.ficCata).read()
-      SchemaMed = readerEfiXsd.efficas.CreateFromDocument(xml)
-      SchemaMed.exploreCata() 
-      self.cata=SchemaMed
-      uiinfo.traite_UIinfo(self.cata)
-      self.Commandes_Ordre_Catalogue=[]
-      self.cata_ordonne_dico,self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
-      self.liste_groupes=None
+        #self.ficCata = 'Cata_MED_FAM.xml'
+        #xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
+        #xml = open('/home/A96028/QT5GitEficasTravail/eficas/CataTestXSD/cata_test1.xml').read()
+        self.choisitCata()
+        xml=open(self.ficCata).read()
+        SchemaMed = readerEfiXsd.efficas.CreateFromDocument(xml)
+        SchemaMed.exploreCata()
+        self.cata=SchemaMed
+        uiinfo.traite_UIinfo(self.cata)
+        self.Commandes_Ordre_Catalogue=[]
+        self.cata_ordonne_dico,self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
+        self.liste_groupes=None
 
-   def dumpToXml(self):
-      # pour compatibilite
-       pass
+    def dumpToXml(self):
+        # pour compatibilite
+        pass
index f9e2e944269d4696ffe1bbfa95d0bd3ce77b95af..387ca360c7691cb5343e1b6a2fb6e3eabdc8f9ad 100644 (file)
@@ -19,7 +19,7 @@
 #
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 from PyQt5.QtWidgets import QAction, QMenu, QMessageBox
@@ -61,16 +61,16 @@ class PopUpMenuNodeMinimal(object) :
         self.menu.addAction(self.Supprime)
         if hasattr(self.appliEficas, 'mesScripts'):
             if self.editor.code in  self.editor.appliEficas.mesScripts :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
-               if self.tree.currentItem().item.getNom() in self.dict_commandes_mesScripts : 
-                   self.ajoutScript()
-    
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                if self.tree.currentItem().item.getNom() in self.dict_commandes_mesScripts :
+                    self.ajoutScript()
+
     def ajoutScript(self):
     # cochon mais je n arrive pas a faire mieux avec le mecanisme de plugin
     # a revoir avec un menu et un connect sur le triggered sur le menu ?
         if hasattr(self.appliEficas, 'mesScripts'):
             if self.editor.code in  self.editor.appliEficas.mesScripts :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
             else : return
 
         from Extensions import jdc_include
@@ -80,18 +80,18 @@ class PopUpMenuNodeMinimal(object) :
         if type(listeCommandes) != tuple: listeCommandes=(listeCommandes,)
         numero=0
         for commande in listeCommandes :
-           conditionSalome=commande[3]
-           if (self.appliEficas.salome == 0 and conditionSalome == True): return
-           label=commande[1]
-           tip=commande[5]
-           self.action=QAction(label,self.tree)
-           self.action.setStatusTip(tip)
-           if numero==4: self.action.triggered.connect(self.appelleFonction4)
-           if numero==3: self.action.triggered.connect(self.appelleFonction3); numero=4
-           if numero==2: self.action.triggered.connect(self.appelleFonction2); numero=3
-           if numero==1: self.action.triggered.connect(self.appelleFonction1); numero=2
-           if numero==0: self.action.triggered.connect(self.appelleFonction0); numero=1
-           self.menu.addAction(self.action)
+            conditionSalome=commande[3]
+            if (self.appliEficas.salome == 0 and conditionSalome == True): return
+            label=commande[1]
+            tip=commande[5]
+            self.action=QAction(label,self.tree)
+            self.action.setStatusTip(tip)
+            if numero==4: self.action.triggered.connect(self.appelleFonction4)
+            if numero==3: self.action.triggered.connect(self.appelleFonction3); numero=4
+            if numero==2: self.action.triggered.connect(self.appelleFonction2); numero=3
+            if numero==1: self.action.triggered.connect(self.appelleFonction1); numero=2
+            if numero==0: self.action.triggered.connect(self.appelleFonction0); numero=1
+            self.menu.addAction(self.action)
 
 
     def appelleFonction0(self):
@@ -114,7 +114,7 @@ class PopUpMenuNodeMinimal(object) :
         nomCmd=nodeTraite.item.getNom()
         if hasattr(self.appliEficas, 'mesScripts'):
             if self.editor.code in  self.editor.appliEficas.mesScripts :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
             else : return
         listeCommandes=self.dict_commandes_mesScripts[nomCmd]
         commande=listeCommandes[numero]
@@ -122,28 +122,28 @@ class PopUpMenuNodeMinimal(object) :
 
 
         if (nodeTraite.item.isValid() == 0 and conditionValid == True):
-                 QMessageBox.warning( None, 
-                             tr("item invalide"),
-                             tr("l item doit etre valide"),)
-                 return
+            QMessageBox.warning( None,
+                        tr("item invalide"),
+                        tr("l item doit etre valide"),)
+            return
         fonction=commande[0]
         listenomparam=commande[2]
         listeparam=[]
         for p in listenomparam:
             if hasattr(nodeTraite,p):
-               listeparam.append(getattr(nodeTraite,p))
+                listeparam.append(getattr(nodeTraite,p))
             if p=="self" : listeparam.append(self)
-           
+
         try :
-           res, commentaire= fonction(listeparam)
-           if not res :
-                 QMessageBox.warning( None, 
-                             tr("echec de la fonction"),
-                             tr(commentaire),)
-                 return
+            res, commentaire= fonction(listeparam)
+            if not res :
+                QMessageBox.warning( None,
+                            tr("echec de la fonction"),
+                            tr(commentaire),)
+                return
         except :
-           pass
-        
+            pass
+
 
 
 
@@ -184,25 +184,25 @@ class PopUpMenuNodeMinimal(object) :
         try :
             f=open(commande,"rb")
         except :
-             texte=tr("impossible de trouver la commande  ") + commande
-             QMessageBox.information( self.editor, tr("Lecteur PDF"), texte)
-             return
+            texte=tr("impossible de trouver la commande  ") + commande
+            QMessageBox.information( self.editor, tr("Lecteur PDF"), texte)
+            return
         import os
         if cle_doc.startswith('http:'):
-           fichier = cle_doc
+            fichier = cle_doc
         else :
             fichier = os.path.abspath(os.path.join(self.editor.maConfiguration.path_doc,
                                        cle_doc))
             try :
-               f=open(fichier,"rb")
+                f=open(fichier,"rb")
             except :
-               texte=tr("impossible d'ouvrir ") + fichier
-               QMessageBox.information( self.editor, tr("Documentation Vide"), texte)
-               return
+                texte=tr("impossible d'ouvrir ") + fichier
+                QMessageBox.information( self.editor, tr("Documentation Vide"), texte)
+                return
+
 
-       
         if os.name == 'nt':
-           os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
+            os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
         elif os.name == 'posix':
             script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier)
             pid = os.system(script)
@@ -237,7 +237,7 @@ class PopUpMenuNodePartiel (PopUpMenuNodeMinimal):
         self.commentMenu.addAction(self.CommApres)
         self.commentMenu.addAction(self.CommAvant)
         #ss-menu Parameters:
-        self.paramMenu =self.menu.addMenu(tr('Parametre')) 
+        self.paramMenu =self.menu.addMenu(tr('Parametre'))
         self.paramMenu.addAction(self.ParamApres)
         self.paramMenu.addAction(self.ParamAvant)
         self.menu.addAction(self.Documentation)
index 62656df3b05b02af216a3789a00c97efee329ef5..3d5975cc9c2f264f56b1fc6f81d5986d09b2a088 100644 (file)
@@ -20,8 +20,8 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os
@@ -32,263 +32,263 @@ from  PyQt5.QtCore     import QFileInfo
 DictExtensions= {"MAP" : ".map"}
 class MyViewManager(object):
 
-   def __init__(self,appliEficas):
-       self.appliEficas=appliEficas
-       self.tabWidgets = []
-       self.mesIndexes = {}
-       self.appliEficas=appliEficas
-       self.editors = []
-       self.dictEditors={}
-       self.untitledCount = 0
-       self.doubles = {}
-
-       self.myQtab = self.appliEficas.myQtab
-       self.myQtab.currentChanged.connect(self.indexChanged)
-       self.myQtab.tabCloseRequested.connect(self.closeTab)
-        
-   def indexChanged(self):
-       index=self.myQtab.currentIndex()
-       if index in self.dictEditors:
-           editor=self.dictEditors[index]
-           if editor.jdc !=None : 
-              CONTEXT.unsetCurrentJdC()
-              CONTEXT.setCurrentJdC(editor.jdc)
-           self.appliEficas.maConfiguration=editor.maConfiguration
-           self.appliEficas.code=editor.maConfiguration.code
-           self.appliEficas.setWindowTitle(editor.titre)
-           self.appliEficas.construitMenu()
-
-   def handleOpen(self,fichier=None,patron=0,units=None):
-       result = None
-       if fichier is None:
-            if self.appliEficas.demande==True : 
-               self.appliEficas.definitCode(None,None)
-               if self.appliEficas.code == None:return
-            
+    def __init__(self,appliEficas):
+        self.appliEficas=appliEficas
+        self.tabWidgets = []
+        self.mesIndexes = {}
+        self.appliEficas=appliEficas
+        self.editors = []
+        self.dictEditors={}
+        self.untitledCount = 0
+        self.doubles = {}
+
+        self.myQtab = self.appliEficas.myQtab
+        self.myQtab.currentChanged.connect(self.indexChanged)
+        self.myQtab.tabCloseRequested.connect(self.closeTab)
+
+    def indexChanged(self):
+        index=self.myQtab.currentIndex()
+        if index in self.dictEditors:
+            editor=self.dictEditors[index]
+            if editor.jdc !=None :
+                CONTEXT.unsetCurrentJdC()
+                CONTEXT.setCurrentJdC(editor.jdc)
+            self.appliEficas.maConfiguration=editor.maConfiguration
+            self.appliEficas.code=editor.maConfiguration.code
+            self.appliEficas.setWindowTitle(editor.titre)
+            self.appliEficas.construitMenu()
+
+    def handleOpen(self,fichier=None,patron=0,units=None):
+        result = None
+        if fichier is None:
+            if self.appliEficas.demande==True :
+                self.appliEficas.definitCode(None,None)
+                if self.appliEficas.code == None:return
+
             if self.appliEficas.code in DictExtensions:
-               chaine="JDC (*"+DictExtensions[self.appliEficas.code]+");;"
-               extensions=tr(chaine+ "All Files (*)")
+                chaine="JDC (*"+DictExtensions[self.appliEficas.code]+");;"
+                extensions=tr(chaine+ "All Files (*)")
             elif self.appliEficas.code== "TELEMAC" : extensions=tr('CAS (*.cas);;All Files (*)')
             else :
-               extensions=tr('Fichiers JDC (*.comm);;''Tous les Fichiers (*)')
+                extensions=tr('Fichiers JDC (*.comm);;''Tous les Fichiers (*)')
 
             fichier = QFileDialog.getOpenFileName(self.appliEficas,
                         tr('Ouvrir Fichier'),
                         self.appliEficas.maConfiguration.savedir,
                         extensions)
             fichier=fichier[0]
-       fichier = os.path.abspath(fichier)
-       ulfile = os.path.abspath(fichier)
-       self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-       self.appliEficas.addToRecentList(fichier)
-       maPage = self.getEditor( fichier,units=units)
-       if maPage : result = maPage
-       if maPage : self.myQtab.setTabText(self.myQtab.indexOf(maPage),os.path.basename(fichier))
-       return result
-
-   def closeTab(self,indexAFermer):
-       self.handleClose(indexAFermer = indexAFermer)
-
-   def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter'),indexAFermer=None):
-       if doitSauverRecent : self.appliEficas.sauveRecents()
-       if indexAFermer == None : index=self.myQtab.currentIndex()
-       else : index = indexAFermer
-       if index < 0 : return
-       res=self.checkDirty(self.dictEditors[index],texte)
-       if res == 2 : return 2             # l utilisateur a annule
-       idx=index
-       while idx < len(self.dictEditors) -1 :
-             self.dictEditors[idx]=self.dictEditors[idx+1]
-             idx = idx + 1
-       del self.dictEditors[len (self.dictEditors) -1]
-       try :
-           del self.doubles[self.dictEditors[index]]
-       except :
-           pass
-       self.myQtab.removeTab(index)
-       return res
-       
-
-   def run(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.run()
-
-   def saveRun(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.saveRun()
-
-   def handleCloseAll(self,texte=tr('Quitter')):
-       res=0
-       self.appliEficas.sauveRecents()
-       while len(self.dictEditors) > 0 :
-             self.myQtab.setCurrentIndex(0)
-             res=self.handleClose(0,texte)
-             if res==2 : return res   # l utilsateur a annule
-       return res
-        
-   def handleRechercher(self):
-       #print "passage dans handleRechercher"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleRechercher()
-
-   def handleRechercherDsCatalogue(self):
-       #print "passage dans handleRechercher"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleRechercherDsCatalogue()
-
-   def handleDeplier(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleDeplier()
-   
-   def handleEditCopy(self):
-       #print "passage dans handleEditCopy"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleEditCopy()
-
-   def handleEditCut(self):
-       #print "passage dans handleEditCut"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleEditCut()
-
-   def handleEditPaste(self):
-       #print "passage dans handleEditPaste"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleEditPaste()
-
-   def handleSupprimer(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleSupprimer()
-
-   def handleAjoutEtape(self,nomEtape):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleAjoutEtape(nomEtape)
-
-
-   def newEditor(self,include=0):
-       if self.appliEficas.demande==True : 
-           self.appliEficas.definitCode(None,None)
-           if self.appliEficas.code == None:return
-       maPage=self.getEditor(include=include)
-
-   def newIncludeEditor(self):
-       self.newEditor(include=1)
-
-   def handleViewJdcFichierSource(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dictEditors[index].viewJdcSource()
-
-   def ouvreArbre(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dictEditors[index].ouvreArbre()
-
-   def fermeArbre(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dictEditors[index].fermeArbre()
-
-   def ajoutCommentaire(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.ajoutCommentaire()
-
-   def handleViewJdcRegles(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dictEditors[index].viewJdcRegles()
-
-   def handleGestionParam(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : 
-          QMessageBox.warning( self.appliEficas,tr(u"Creation Parametre indisponible"),tr(u"les parametres sont lies a un jeu de donnees"))
-          return
-       self.dictEditors[index].gestionParam()
-
-   def handleViewJdcRapport(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dictEditors[index].viewJdcRapport()
-
-   def handleViewJdcPy(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dictEditors[index].viewJdcPy()
-
-   def saveCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       if editor in self.doubles :
-           QMessageBox.warning(
-                     None,
-                     tr("Fichier Duplique"),
-                     tr("Le fichier ne sera pas sauvegarde."),)
-           return
-       ok, newName = editor.saveFile()
-       if ok :
-           fileName=os.path.basename(newName)
-           self.myQtab.setTabText(index,fileName)
-       return ok
-
-   def saveCompleteCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       ok, newName = editor.saveCompleteFile()
-       return ok
-
-   def sauveLigneCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       if editor in self.doubles :
-           QMessageBox.warning(
-                     None,
-                     tr("Fichier Duplique"),
-                     tr("Le fichier ne sera pas sauvegarde."),)
-           return
-       ok, newName = editor.sauveLigneFile()
-       if ok :
-           fileName=os.path.basename(newName)
-           self.myQtab.setTabText(index,fileName)
-       return ok
-
-   def saveAsCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       editor=self.dictEditors[index]
-       oldName=editor.fichier
-       ok,newName = editor.saveFileAs()
-       if ok :
-           fileName=os.path.basename(newName)
-           self.myQtab.setTabText(index,fileName)
-       if editor in self.doubles :
-          if oldName != newName :
-             del self.doubles[editor]
-       return ok
-
-   def displayJDC(self,jdc,fn=None):
+        fichier = os.path.abspath(fichier)
+        ulfile = os.path.abspath(fichier)
+        self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+        self.appliEficas.addToRecentList(fichier)
+        maPage = self.getEditor( fichier,units=units)
+        if maPage : result = maPage
+        if maPage : self.myQtab.setTabText(self.myQtab.indexOf(maPage),os.path.basename(fichier))
+        return result
+
+    def closeTab(self,indexAFermer):
+        self.handleClose(indexAFermer = indexAFermer)
+
+    def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter'),indexAFermer=None):
+        if doitSauverRecent : self.appliEficas.sauveRecents()
+        if indexAFermer == None : index=self.myQtab.currentIndex()
+        else : index = indexAFermer
+        if index < 0 : return
+        res=self.checkDirty(self.dictEditors[index],texte)
+        if res == 2 : return 2             # l utilisateur a annule
+        idx=index
+        while idx < len(self.dictEditors) -1 :
+            self.dictEditors[idx]=self.dictEditors[idx+1]
+            idx = idx + 1
+        del self.dictEditors[len (self.dictEditors) -1]
+        try :
+            del self.doubles[self.dictEditors[index]]
+        except :
+            pass
+        self.myQtab.removeTab(index)
+        return res
+
+
+    def run(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.run()
+
+    def saveRun(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.saveRun()
+
+    def handleCloseAll(self,texte=tr('Quitter')):
+        res=0
+        self.appliEficas.sauveRecents()
+        while len(self.dictEditors) > 0 :
+            self.myQtab.setCurrentIndex(0)
+            res=self.handleClose(0,texte)
+            if res==2 : return res   # l utilsateur a annule
+        return res
+
+    def handleRechercher(self):
+        #print "passage dans handleRechercher"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleRechercher()
+
+    def handleRechercherDsCatalogue(self):
+        #print "passage dans handleRechercher"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleRechercherDsCatalogue()
+
+    def handleDeplier(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleDeplier()
+
+    def handleEditCopy(self):
+        #print "passage dans handleEditCopy"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleEditCopy()
+
+    def handleEditCut(self):
+        #print "passage dans handleEditCut"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleEditCut()
+
+    def handleEditPaste(self):
+        #print "passage dans handleEditPaste"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleEditPaste()
+
+    def handleSupprimer(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleSupprimer()
+
+    def handleAjoutEtape(self,nomEtape):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleAjoutEtape(nomEtape)
+
+
+    def newEditor(self,include=0):
+        if self.appliEficas.demande==True :
+            self.appliEficas.definitCode(None,None)
+            if self.appliEficas.code == None:return
+        maPage=self.getEditor(include=include)
+
+    def newIncludeEditor(self):
+        self.newEditor(include=1)
+
+    def handleViewJdcFichierSource(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcSource()
+
+    def ouvreArbre(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].ouvreArbre()
+
+    def fermeArbre(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].fermeArbre()
+
+    def ajoutCommentaire(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.ajoutCommentaire()
+
+    def handleViewJdcRegles(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcRegles()
+
+    def handleGestionParam(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 :
+            QMessageBox.warning( self.appliEficas,tr(u"Creation Parametre indisponible"),tr(u"les parametres sont lies a un jeu de donnees"))
+            return
+        self.dictEditors[index].gestionParam()
+
+    def handleViewJdcRapport(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcRapport()
+
+    def handleViewJdcPy(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcPy()
+
+    def saveCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        if editor in self.doubles :
+            QMessageBox.warning(
+                      None,
+                      tr("Fichier Duplique"),
+                      tr("Le fichier ne sera pas sauvegarde."),)
+            return
+        ok, newName = editor.saveFile()
+        if ok :
+            fileName=os.path.basename(newName)
+            self.myQtab.setTabText(index,fileName)
+        return ok
+
+    def saveCompleteCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        ok, newName = editor.saveCompleteFile()
+        return ok
+
+    def sauveLigneCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        if editor in self.doubles :
+            QMessageBox.warning(
+                      None,
+                      tr("Fichier Duplique"),
+                      tr("Le fichier ne sera pas sauvegarde."),)
+            return
+        ok, newName = editor.sauveLigneFile()
+        if ok :
+            fileName=os.path.basename(newName)
+            self.myQtab.setTabText(index,fileName)
+        return ok
+
+    def saveAsCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        editor=self.dictEditors[index]
+        oldName=editor.fichier
+        ok,newName = editor.saveFileAs()
+        if ok :
+            fileName=os.path.basename(newName)
+            self.myQtab.setTabText(index,fileName)
+        if editor in self.doubles :
+            if oldName != newName :
+                del self.doubles[editor]
+        return ok
+
+    def displayJDC(self,jdc,fn=None):
         """
         Public slot to display a file in an editor.
         @param fn name of file to be opened
@@ -299,43 +299,43 @@ class MyViewManager(object):
         editor = self.getEditor(fichier= fn, jdc = jdc ,include=1)
         self.appliEficas.addToRecentList(editor.getFileName())
 
-   def getEditor(self,fichier = None,jdc = None, units = None,include=0):
-       newWin = 0
-       double = None
-       indexEditor=0
-       for indexEditor in self.dictEditors :
-           editor=self.dictEditors[indexEditor]
-           if self.samePath(fichier, editor.getFileName()):
-              msgBox = QMessageBox()
-              msgBox.setWindowTitle(tr("Fichier"))
-              msgBox.setText(tr("Le fichier <b>%s</b> est deja ouvert", str(fichier)))
-              msgBox.addButton(tr("&Duplication"),0)
-              msgBox.addButton(tr("&Abandonner"),1)
-              abort=msgBox.exec_()
-              if abort: break
-              double=editor
-       else :
+    def getEditor(self,fichier = None,jdc = None, units = None,include=0):
+        newWin = 0
+        double = None
+        indexEditor=0
+        for indexEditor in self.dictEditors :
+            editor=self.dictEditors[indexEditor]
+            if self.samePath(fichier, editor.getFileName()):
+                msgBox = QMessageBox()
+                msgBox.setWindowTitle(tr("Fichier"))
+                msgBox.setText(tr("Le fichier <b>%s</b> est deja ouvert", str(fichier)))
+                msgBox.addButton(tr("&Duplication"),0)
+                msgBox.addButton(tr("&Abandonner"),1)
+                abort=msgBox.exec_()
+                if abort: break
+                double=editor
+        else :
             from .editor import JDCEditor
             editor = JDCEditor(self.appliEficas,fichier, jdc, self.myQtab,units=units,include=include)
-            if double != None : 
-               self.doubles[editor]=double
+            if double != None :
+                self.doubles[editor]=double
             if editor.jdc: # le fichier est bien un jdc
                 self.editors.append(editor)
                 newWin = 1
             else:
                 editor.closeIt()
 
-       if newWin:
+        if newWin:
             self.addView(editor, fichier)
-       elif editor.jdc:
+        elif editor.jdc:
             self.myQtab.setCurrentIndex(indexEditor)
 
-       index=self.myQtab.currentIndex()
-       if index != -1 :
-          self.dictEditors[index]=editor
-       return editor
+        index=self.myQtab.currentIndex()
+        if index != -1 :
+            self.dictEditors[index]=editor
+        return editor
 
-   def addView(self, win, fichier=None):
+    def addView(self, win, fichier=None):
 #PNPNPNPN --> a affiner
         if fichier is None:
             self.untitledCount += 1
@@ -351,31 +351,31 @@ class MyViewManager(object):
         self.currentEditor=win
         win.setFocus()
 
-   def getOpenStartDir(self) :
-       #PN --> Les Preferences
+    def getOpenStartDir(self) :
+        #PN --> Les Preferences
         try :
             userDir=os.path.expanduser("~/Eficas_install/")
             return userDir
         except :
             return ""
 
-   def samePath(self,f1, f2):
-    """
-    compare two paths.
-    """
-    if f1 is None or f2 is None: return 0
-    if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
-    return 0
+    def samePath(self,f1, f2):
+        """
+        compare two paths.
+        """
+        if f1 is None or f2 is None: return 0
+        if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
+        return 0
 
 
-   def checkDirty(self, editor,texte):
+    def checkDirty(self, editor,texte):
         """
         Private method to check dirty status and open a message window.
-        
+
         @param editor editor window to check
         @return flag indicating successful reset of the dirty flag (boolean)
-        """        
-        res=1 
+        """
+        res=1
         if (editor.modified) and (editor in self.doubles) :
             msgBox = QMessageBox(None)
             msgBox.setWindowTitle(tr("Fichier Duplique"))
@@ -405,28 +405,27 @@ class MyViewManager(object):
                 return ok
         return res
 
-   def handleAjoutGroup(self,listeGroup):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       editor.handleAjoutGroup(listeGroup)
-  
-   def handleFonctionUtilisateur(self,laFonctionUtilisateur, lesArguments):
-       # Peut-etre a blinder un peu plus sur le nb d argument
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dictEditors[index]
-       if editor.getEtapeCourante() == None :
-          QMessageBox.information( self.appliEficas,
-                      tr("Selectionner une etape"),
-                      tr("Le texte ne peut pas etre insere dans un fichier vide,\nCreer un materiau vide ou une zone vide et inserer le catalogue apres"))
-          return
-
-       listeParam = [] 
-       for p in lesArguments:
-          #print (p)
-          if hasattr(editor,p): listeParam.append(getattr(editor,p))
-          if p=="editor"      : listeParam.append(editor)
-          if p=="etapeCourante" : listeParam.append(editor.getEtapeCourante())
-       laFonctionUtilisateur(*listeParam)
-
+    def handleAjoutGroup(self,listeGroup):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleAjoutGroup(listeGroup)
+
+    def handleFonctionUtilisateur(self,laFonctionUtilisateur, lesArguments):
+        # Peut-etre a blinder un peu plus sur le nb d argument
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        if editor.getEtapeCourante() == None :
+            QMessageBox.information( self.appliEficas,
+                        tr("Selectionner une etape"),
+                        tr("Le texte ne peut pas etre insere dans un fichier vide,\nCreer un materiau vide ou une zone vide et inserer le catalogue apres"))
+            return
+
+        listeParam = []
+        for p in lesArguments:
+            #print (p)
+            if hasattr(editor,p): listeParam.append(getattr(editor,p))
+            if p=="editor"      : listeParam.append(editor)
+            if p=="etapeCourante" : listeParam.append(editor.getEtapeCourante())
+        laFonctionUtilisateur(*listeParam)
index 030f86a86088919376d9c3d559fc025183bfc839..e487fa8924faade8122db6e11d9d807c16df73f0 100644 (file)
@@ -20,8 +20,8 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os
@@ -32,45 +32,45 @@ class JdcSsIhmHandler(object):
 # --------------------------------
 # retourne a l utilisateur
 
-   def __init__(self,viewManager):
+    def __init__(self,viewManager):
 #  --------------------------------------
-       self.viewManagerSsIhm=viewManager
+        self.viewManagerSsIhm=viewManager
 
-   def viewJdcPy(self) :
+    def viewJdcPy(self) :
 #  ---------------------
-       self.viewManagerSsIhm.handleViewJdcPy(self)
+        self.viewManagerSsIhm.handleViewJdcPy(self)
 
-   def viewJdcSource(self) :
+    def viewJdcSource(self) :
 #  ---------------------
-       self.viewManagerSsIhm.handleViewJdcSource(self)
+        self.viewManagerSsIhm.handleViewJdcSource(self)
 
-   def getFileName(self):
+    def getFileName(self):
 #  ---------------------
-       self.viewManagerSsIhm.getFileName(self)
+        self.viewManagerSsIhm.getFileName(self)
 
-   def viewJdcRapport(self) :
+    def viewJdcRapport(self) :
 #  ---------------------
-       self.viewManagerSsIhm.handleViewJdcRapport(self)
+        self.viewManagerSsIhm.handleViewJdcRapport(self)
 
-   def getJdcRapport(self) :
+    def getJdcRapport(self) :
 #  ---------------------
-       return self.viewManagerSsIhm.handleGetJdcRapport(self)
+        return self.viewManagerSsIhm.handleGetJdcRapport(self)
 
-   def getDicoPython(self) :
+    def getDicoPython(self) :
 #  -------------------------
-       return self.viewManagerSsIhm.generDico(self)
+        return self.viewManagerSsIhm.generDico(self)
 
-   def isJdcValid(self) :
+    def isJdcValid(self) :
 #  -------------------------
-       return self.viewManagerSsIhm.isJdcValid(self)
+        return self.viewManagerSsIhm.isJdcValid(self)
 
-   def fileSaveAs(self,fileName):
+    def fileSaveAs(self,fileName):
 #  -------------------------
-       return self.viewManagerSsIhm.fileSaveAs(self,fileName)
+        return self.viewManagerSsIhm.fileSaveAs(self,fileName)
 
-   def fileLegerSaveAs(self,fileName):
+    def fileLegerSaveAs(self,fileName):
 #  -----------------------------------
-       return self.viewManagerSsIhm.fileLegerSaveAs(self,fileName)
+        return self.viewManagerSsIhm.fileLegerSaveAs(self,fileName)
 
 
 
@@ -79,163 +79,161 @@ class MyViewManagerSsIhm(object):
 #--------------------------------
 # Symetrique de ViewManager mais pas d heritage entre les 2
 # dans le viewManager pas de souci pour savoir qui est le jdc sur lequel on travaille
-# ici en revanche.... c est moins sur . voir avec le fichier 
+# ici en revanche.... c est moins sur . voir avec le fichier
 
 #  --------------------------------
-   def __init__(self,appliEficas):
+    def __init__(self,appliEficas):
 #  --------------------------------
-       self.appliEficas=appliEficas
-       self.tabWidgets = []
-       self.mesIndexes = {}
-       self.dictEditors={}
-       self.untitledCount = 0
-       self.doubles = {}
+        self.appliEficas=appliEficas
+        self.tabWidgets = []
+        self.mesIndexes = {}
+        self.dictEditors={}
+        self.untitledCount = 0
+        self.doubles = {}
 
 #  ------------------------------------------------------
-   def handleOpen(self,fichier=None, units=None):
+    def handleOpen(self,fichier=None, units=None):
 #  ------------------------------------------------------
-       result = None
-       if fichier is None: 
-             print ('nom de fichier obligatoire')
-             return None
+        result = None
+        if fichier is None:
+            print ('nom de fichier obligatoire')
+            return None
 
-       for handler in self.dictEditors :
-           editor=self.dictEditors[handler]
-           if self.samePath(fichier, editor.getFileName()):
-              print ('fichier deja ouvert . pas de nouvel editor')
-              return handler
+        for handler in self.dictEditors :
+            editor=self.dictEditors[handler]
+            if self.samePath(fichier, editor.getFileName()):
+                print ('fichier deja ouvert . pas de nouvel editor')
+                return handler
 
-       monNewHandler = self.getNewEditor(fichier,units)
-       return monNewHandler
+        monNewHandler = self.getNewEditor(fichier,units)
+        return monNewHandler
 
 #  ----------------------------------------------------------------------
-   def getNewEditor(self,fichier = None,jdc = None, units = None,include=0):
+    def getNewEditor(self,fichier = None,jdc = None, units = None,include=0):
 #  ----------------------------------------------------------------------
 # il faudrait decider entre e handler ou non
 # le cas d usage n est pas tout a fait identique  :
 # avec handler pour les utilisateurs avance
 # sans pour les utilisateurs encore plus ancvances et les tests
 
-       from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
-       editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
+        from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
+        editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
 
-       if editor.jdc: # le fichier est bien un jdc
-          monHandler = JdcSsIhmHandler(self)
-          self.dictEditors[monHandler]=editor
-          return monHandler
-       else:
-          print ('impossible de construire le jdc') 
-          return None
+        if editor.jdc: # le fichier est bien un jdc
+            monHandler = JdcSsIhmHandler(self)
+            self.dictEditors[monHandler]=editor
+            return monHandler
+        else:
+            print ('impossible de construire le jdc')
+            return None
 
 #  --------------------------------------------------------------------------------
-   def getNewEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
+    def getNewEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
 #  --------------------------------------------------------------------------------
 
-       from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
-       editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
-       self.editor=editor
-       return editor
+        from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
+        editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
+        self.editor=editor
+        return editor
 
 #  -----------------------------
-   def samePath(self,f1, f2):
+    def samePath(self,f1, f2):
 #  ------------------------------
-    """
-    compare two paths.
-    """
-    if f1 is None or f2 is None: return 0
-    if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
-    return 0
+        """
+        compare two paths.
+        """
+        if f1 is None or f2 is None: return 0
+        if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
+        return 0
 
 #  ---------------------------------
-   def handleViewJdcPy(self,handler):
+    def handleViewJdcPy(self,handler):
 #  ---------------------------------
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcPy()
 
 #  ---------------------------------
-   def getFileName(self,handler):
+    def getFileName(self,handler):
 #  ---------------------------------
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].getFileName()
 
 
 #  ---------------------------------------------
-   def handleViewJdcSource(self,handler):
+    def handleViewJdcSource(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcSource()
 
 
 #  ---------------------------------------------
-   def handleViewJdcRapport(self,handler):
+    def handleViewJdcRapport(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcRapport()
 
 #  ---------------------------------------------
-   def handleGetJdcRapport(self,handler):
+    def handleGetJdcRapport(self,handler):
 #  ---------------------------------------------
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].getJdcRapport()
 
 #  ---------------------------------------------
-   def handleViewJdcRapport(self,handler):
+    def handleViewJdcRapport(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcRapport()
 
 
 #  ---------------------------------------------
-   def generDico(self,handler):
+    def generDico(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].generDico()
 
 
 #  ---------------------------------------------
-   def isJdcValid(self,handler):
+    def isJdcValid(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].jdc.isValid()
 
 
 #  ---------------------------------------------
-   def fileSaveAs(self,handler,fileName):
+    def fileSaveAs(self,handler,fileName):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].saveFile(fileName)
 
 #  ---------------------------------------------
-   def fileLegerSaveAs(self, handler,fileName):
+    def fileLegerSaveAs(self, handler,fileName):
 #  ---------------------------------------------
 #        print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].saveFileLegerAs(fileName)
-
-