]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
sauve du 10/06
authorpascale.noyret <pascale.noyret@edf.fr>
Fri, 10 Jun 2016 15:23:00 +0000 (17:23 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Fri, 10 Jun 2016 15:23:00 +0000 (17:23 +0200)
24 files changed:
Extensions/localisation.py
Ihm/I_MCSIMP.py
InterfaceQT4/composimp.py
InterfaceQT4/editor.py
InterfaceQT4/eficas_go.py [changed mode: 0644->0755]
InterfaceQT4/feuille.py
InterfaceQT4/gereIcones.py
InterfaceQT4/gereListe.py
InterfaceQT4/monChoixCode.py
InterfaceQT4/monSelectVal.py
InterfaceQT4/monSelectValPSEN.py [new file with mode: 0644]
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetPlusieursInto.py
InterfaceQT4/monWidgetPlusieursTuple.py
InterfaceQT4/qtEficas.py
InterfaceQT4/readercata.py
InterfaceQT4/sauveTELEMAC.py [new file with mode: 0644]
InterfaceQT4/typeNode.py
InterfaceQT4/viewManager.py
PSEN_Eficas/mesScripts_PSEN.py [new file with mode: 0644]
PSEN_Eficas/opsPSEN.py
PSEN_Eficas/qtEficas_PSEN.py
UiQT4/desWidgetCommande.ui
UiQT4/desWidgetPlusieursInto.ui

index 0de1f72ebe478edc22d14e2e9438a5492ce1ec86..c5d8bff54f791f77c66ccc515546048bf342a440 100644 (file)
@@ -30,7 +30,7 @@ else :
 qt_translator = QTranslator()
 eficas_translator = QTranslator()
 
-def localise(application, locale=None ):
+def localise(application, locale=None,file=None ):
     """
     localise(QApplication) -> None
 
@@ -74,8 +74,16 @@ def localise(application, locale=None ):
     #    print "Unable to load Qt base translator!"
     
     global eficas_translator
+    print locale
     if locale=="ang" : locale="en"
     #print "eficas_" + locale, monPath
+    if file != None :
+       print 'chagrement de ', file,monPath
+       print eficas_translator.load(file,monPath)
+       print QApplication.installTranslator(eficas_translator)
+       return
+     
+
     if eficas_translator.load("eficas_" + locale, monPath):
         QApplication.installTranslator(eficas_translator)
         print "chargement eficas_", locale, monPath
index 18ed98ff9b6e63456b162881a72fc7b4190ad59d..71eca1b120c30253ead04249a5c082afa96d7810 100644 (file)
@@ -95,7 +95,7 @@ class MCSIMP(I_OBJECT.OBJECT):
         if self.jdc.appli.appliEficas.dict_reels[clefobj].has_key(self.valeur):
            txt=self.jdc.appli.appliEficas.dict_reels[clefobj][self.valeur]
     elif type(self.valeur) in (types.ListType,types.TupleType) :
-      if self.valeur==[]: return str(self.valeur)
+      if self.valeur==[] or self.valeur == (): return str(self.valeur)
       # Traitement des listes
       txt='('
       sep=''
index 720c60606fbb0c4e5dde15c7852460e39820884e..3732351f1b41394a52c101009935e5b7d77257ab 100644 (file)
@@ -144,7 +144,6 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
           #if maDefinition.into != [] and maDefinition.into != None:
           # Attention pas fini --> on attend une liste de ASSD avec ordre
           if self.item.wait_assd() and self.item.is_list_SansOrdreNiDoublon():
-               #print 1
                from monWidgetPlusieursInto import MonWidgetPlusieursInto
                widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
           elif self.item.wait_assd() :
@@ -152,11 +151,9 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
                widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
           elif self.item.wait_tuple() :
             if self.item.object.definition.type[0].ntuple == 2:
-               #print 3
                from monWidgetPlusieursTuple2 import MonWidgetPlusieursTuple2
                widget=MonWidgetPlusieursTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             elif self.item.object.definition.type[0].ntuple == 3 :
-               #print 4
                from monWidgetPlusieursTuple3 import MonWidgetPlusieursTuple3
                widget=MonWidgetPlusieursTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
@@ -164,7 +161,10 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
                print "Prevenir la maintenance "
           elif self.item.has_into():
             if self.item.is_list_SansOrdreNiDoublon():
-               #print 6
+               print 6
+               print self.editor.listeDesListesOuvertes
+               print self.item in self.editor.listeDesListesOuvertes
+               print self.editor.afficheListesPliees
                if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
                   from monWidgetPlusieursInto import MonWidgetPlusieursInto
                   widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
@@ -172,7 +172,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
                   from monWidgetPlusieursPlie import MonWidgetPlusieursPlie
                   widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
-               #print 7
+               print 7
 # tres vite pour le tag mais devra etre gere dans configuration
                if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
                   from monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
@@ -181,7 +181,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
                   from monWidgetPlusieursPlie import MonWidgetPlusieursPlie
                   widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
           else :
-            #print 8
+            print 8
             if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees)  : 
                from monWidgetPlusieursBase import MonWidgetPlusieursBase
                widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
index b1d54b7e263e1588f2cd67132a56a589964bee23..5516ae551552ac6f6b34de25507067266ea37212 100755 (executable)
@@ -1255,7 +1255,26 @@ class JDCEditor(Ui_baseWidget,QWidget):
         etape.build_includeInclude(texte)
         self.tree.racine.build_children()
 
-
+    def ajoutMC(self,etape,MCFils,valeurs):
+        print etape.nom
+        #print etape,MCFils,valeurs 
+        print dir(etape)
+        #print 'etape' , etape
+        #print MCFils.valeur
+        #print MCFils.val
+        print etape.liste_mc_presents()
+        monMC= etape.addentite('TransfosList')
+        #print etape.append_child
+        #monMC=etape.append_child('TransfosList','last')
+        print etape.liste_mc_presents()
+        # Attention ne pas faire de setValeurs
+        monMC.valeur=valeurs
+        monMC.val=valeurs
+        print monMC.val
+        #print MCFils.valeur
+        #print MCFils.val
+        print etape.liste_mc_presents()
+        print "________"
 
 
     #-------------------------------------#
old mode 100644 (file)
new mode 100755 (executable)
index b89b25a..3d8e098
@@ -49,7 +49,7 @@ def lance_eficas(code=None,fichier=None,ssCode=None,multi=False,langue='en'):
     from qtEficas import Appli
     from Extensions import localisation
     app = QApplication(sys.argv)
-    #localisation.localise(app,langue)
+    localisation.localise(app,langue)
     Eficas=Appli(code=code,ssCode=ssCode,multi=multi,langue=langue)
     Eficas.show()
 
index 961c41950d681d4cf44ce8b78b3aea55e6c13584..d7d564f3ccad64a50b013bfae24ae8cfd7af486b 100644 (file)
@@ -83,10 +83,10 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
 
    def setNom(self):
        self.debutToolTip=""
-       print "kkkkkkkkkkkkkkkkkk"
-       print self.objSimp.nom
+       #print "kkkkkkkkkkkkkkkkkk"
+       #print self.objSimp.nom
        nomTraduit=tr(self.objSimp.nom)
-       print nomTraduit
+       #print nomTraduit
        #if len(nomTraduit) >= nomMax :
        #  nom=nomTraduit[0:nomMax]+'...'
        #  self.label.setText(nomTraduit)
@@ -126,7 +126,10 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
            if mc.min == mc.max:
                commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
            else :
-               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
+               if mc.max != "**" :
+                  commentaire=tr("Entrez 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'
@@ -199,7 +202,7 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
       #self.editor.affiche_infos(info)
 
    def reaffiche(self):
-      #print "dans reaffiche de feuille", self.nom
+      print "dans reaffiche de feuille", self.nom
       if self.editor.jdc.aReafficher==True :
          self.parentQt.reaffiche()
 
index 36d63a85ce904d266bbb6099f20669961fb002c2..80316865f4e7f6a7acb098ca1afb96bc0e9962be 100644 (file)
@@ -22,9 +22,9 @@ import string,types,os,re,sys
 import traceback
 from  determine import monEnvQT5
 if monEnvQT5 :
-  from PyQt5.QtWidgets import QMessageBox, QFileDialog
+  from PyQt5.QtWidgets import QMessageBox, QFileDialog , QMenu
   from PyQt5.QtGui import QIcon
-  from PyQt5.QtCore import  QFileInfo,  Qt, QSize
+  from PyQt5.QtCore import  QFileInfo,  Qt, QSize, QVariant
 
 else:
   from PyQt4.QtGui  import *
@@ -168,10 +168,10 @@ class FacultatifOuOptionnel:
   def setRun(self):
       if hasattr(self.editor.appliEficas, 'mesScripts'):
          if hasattr(self.editor,'tree') and self.editor.tree.currentItem().item.get_nom() in self.appliEficas.mesScripts.dict_commandes.keys() :
-               print 'il faut programmer le self.ajoutScript()'
-               print '#PNPNPNPN'
+               self.ajoutScript()
                return
       if hasattr(self,"RBRun"): self.RBRun.close()
+      if hasattr(self,"CBScripts"): self.CBScripts.close()
 
 
   def aDetruire(self):
@@ -201,6 +201,55 @@ class FacultatifOuOptionnel:
       #newNode.fenetre.setFocus()
 
 
+  def ajoutScript(self):
+    # cochon mais je n arrive pas a faire mieux avec le mecanisme de plugin
+        listeCommandes=self.appliEficas.mesScripts.dict_commandes[self.node.item.get_nom()]
+        if type(listeCommandes) != types.TupleType: listeCommandes=(listeCommandes,)
+        numero=-1
+        for commande in listeCommandes :
+          numero+=1
+          conditionSalome=commande[3]
+          if (self.appliEficas.salome == 0 and conditionSalome == True): continue
+          self.CBScripts.addItem(commande[1])
+          #self.CBScripts.addItem(commande[1],QVariant((numero)))
+        return
+        if 1 :
+           label=commande[1]
+           tip=commande[5]
+           self.action=QAction(label,self.tree)
+           self.action.setStatusTip(tip)
+           if monEnvQT5 :
+              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
+           else:
+              if numero==4:
+                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction4)
+              if numero==3:
+                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction3)
+                 numero=4
+              if numero==2:
+                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction2)
+                 numero=3
+              if numero==1:
+                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction1)
+                 numero=2
+              if numero==0:
+                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction0)
+                 numero=1
+           self.menu.addAction(self.action)
+
 class ContientIcones:
 
   def BFichierVisu(self):
index 640dc9075eece8c941d39871ffbabb74ad3731bf..3c5e585c513139560535fe9d7906507031b31ad4 100644 (file)
@@ -283,6 +283,7 @@ class GerePlie:
 
    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')
index 34ef7c28446c3324d642384ba6f593b41274dd6e..45babb13cb212ed97693bc385d895d7d5f680215 100644 (file)
@@ -60,7 +60,7 @@ class MonChoixCode(Ui_ChoixCode,QDialog):
   def verifieInstall(self):
       self.groupCodes=QButtonGroup(self.groupBox)
       vars=os.environ.items()
-      listeCode=('Aster','Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','Telemac','ZCracks',)
+      listeCode=('Aster','Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','PSEN_N1','Telemac','ZCracks',)
       i=1
       for code in listeCode:
           nom='rB_'+code
index b4a32be66e5fa812613816a041ba7284d1c30047..4fc9f22350bb454ba4a690bafc89509d90feee18 100644 (file)
@@ -21,8 +21,8 @@
 # Modules Eficas
 
 from desSelectVal import Ui_DSelVal
+from determine import monEnvQT5
 
-fromm determine import monEnvQT5
 if monEnvQT5:
     from PyQt5.QtWidgets import QDialog
     from PyQt5.QtCore import QTimer
@@ -51,7 +51,8 @@ class MonSelectVal(DSelVal):
         self.file=str(file)
         self.readVal()
         self.initVal()
-        self.connecterSignaux()
+        if monEnvQT5: self.connecterSignaux()
+        else : self.connecterSignauxQT4()
 
   def connecterSignaux(self) :
         self.Bespace.clicked.connect(self.SelectEsp)
@@ -59,7 +60,7 @@ class MonSelectVal(DSelVal):
         self.Bvirgule.clicked.connect(self.SelectVir)
         self.BImportSel.clicked.connect(self.BImportSelPressed)
         self.BImportTout.clicked.connect(self.BImportToutPressed)
-        self.parent.editor.sb.messageChanged(self.messageAChanger)
+        self.parent.editor.sb.messageChanged.connect(self.messageAChanger)
 
   def connecterSignauxQT4(self) :
         self.connect(self.Bespace,SIGNAL("clicked()"),self.SelectEsp)
diff --git a/InterfaceQT4/monSelectValPSEN.py b/InterfaceQT4/monSelectValPSEN.py
new file mode 100644 (file)
index 0000000..01130fc
--- /dev/null
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Modules Python
+# Modules Eficas
+
+from  monSelectVal import MonSelectVal
+
+class MonSelectValPSEN(MonSelectVal):
+  """
+  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):
+        self.MonSelectVal.__init__(file,parent,name = None,fl = 0):
+
+  def Traitement(self):
+        print "kkkkkkkkkkkkkkkkkkkllllllllllllllllll"
+        liste1=self.textTraite.split(self.separateur)
+        print liste1
+        #self.parent.ajoutNValeur(liste) 
+        
+
index 5d4cc30c633d114248c3ba7b54453860650af511..9e0868c0ed18e1239ed892d451e4053d5f10d6c0 100644 (file)
@@ -62,11 +62,6 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
 
       maPolice= QFont("Times", 10,)
       self.setFont(maPolice)
-      print 'jjjjjjjjjjjjjjjjjjjjjjjjj'
-      print self.obj.nom
-      print tr(self.obj.nom)
-      print tr("TITLE")
-      print 'jjjjjjjjjjjjjjjjjjjjjjjjj'
       self.labelNomCommande.setText(tr(self.obj.nom))
 
       self.commandesLayout.addStretch()
index 25c115951adf4f9bb702045547be5082e9aa0fe7..c3c01fb91a4062505789db16fd2a42ecabab8911 100644 (file)
@@ -23,8 +23,9 @@ import string,types,os
 # Modules Eficas
 from determine import monEnvQT5
 if monEnvQT5:
-    from PyQt5.QtWidgets  import QCheckBox, QScrollBar, QFrame, QApplication
-    from PyQt5.QtGui  import QPalette
+    from PyQt5.QtWidgets  import QCheckBox, QScrollBar, QFrame, QApplication, QLabel
+    from PyQt5.QtWidgets  import QSizePolicy,QSpacerItem
+    from PyQt5.QtGui  import QPalette, QFont
     from PyQt5.QtCore import Qt
 else :
     from PyQt4.QtGui  import *
@@ -46,7 +47,6 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe)
         self.index=1
         self.alpha=0
         self.listeCB=[]
-        self.toto=0
         self.listeCbRouge=[]
         self.listeValeursCourantes=node.item.GetListeValeurs()
         if self.listeValeursCourantes == None : self.listeValeursCourantes=[]
@@ -59,9 +59,21 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe)
         else         : self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.changeTout)
 
         self.gereIconePlier()
+        self.editor.listeDesListesOuvertes.add(self.node.item)
         self.inhibe=False
         self.finCommentaireListe()
 
+        if self.listeAAfficher== None or self.listeAAfficher==[] : 
+            spacerItem = QSpacerItem(30, 20, QSizePolicy.Fixed, QSizePolicy.Minimum)
+            self.CBLayout.addItem(spacerItem)
+            nouveauCommentaire=QLabel()
+            maPolice= QFont("Times", 16)
+            nouveauCommentaire.setFont(maPolice);
+            nouveauCommentaire.setText(tr('Pas de valeurs possibles'))
+            self.CBLayout.addWidget(nouveauCommentaire)
+            spacerItem2 = QSpacerItem(40, 70, QSizePolicy.Fixed, QSizePolicy.Minimum)
+            self.CBLayout.addItem(spacerItem2)
+
         # try except si la liste des possibles est vide
         # prevoir qqchose
         try :
@@ -115,23 +127,22 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe)
        else :
                self.listeAAfficher=self.node.item.get_liste_possible([])
 
-       maListe=[]
-       for  i in self.listeAAfficher: maListe.append(i)  
-       if self.alpha==1 : maListe.sort()
+       if self.objSimp.wait_assd() : 
+          self.listeAAfficher=self.node.item.get_sd_avant_du_bon_type()
+       if self.listeAAfficher== None or self.listeAAfficher==[] : self.listeAAfficher=[]
+
        if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
        else : self.setMinimumHeight(len(self.listeAAfficher)*30)
 
-
        self.PourEtreCoche=[]
        if self.objSimp.wait_assd() : 
-          self.listeAAfficher=self.node.item.get_sd_avant_du_bon_type()
-          for concept in self.listeValeursCourantes:
-              self.PourEtreCoche.append(concept.nom)
+          for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept.nom)
        else :
-          for val in self.listeValeursCourantes:
-              self.PourEtreCoche.append(val)
-       print self.PourEtreCoche
+          for val in self.listeValeursCourantes: self.PourEtreCoche.append(val)
 
+       maListe=[]
+       for  i in self.listeAAfficher: maListe.append(i)  
+       if self.alpha==1 : maListe.sort()
        for i in range(1,len(maListe)+1): self.ajoutCB(i)
 
        self.inhibe=True
@@ -235,3 +246,5 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe)
   def clearAll(self):
       for cb in self.listeCB :
          cb.setText("")
+
+
index 3d4934bfc484e59ad3a4dc052984bacfec934ebf..b2536bb470152d94ed50178e6878b5ff4cfe11b5 100644 (file)
@@ -23,9 +23,9 @@ import string,types,os,sys
 # Modules Eficas
 from determine import monEnvQT5
 if monEnvQT5:
-    from PyQt5.QtWidgets  import QFrame,QApplication
-    from PyQt5.QtGui  import QIcon, QFrame
-    from PyQt5.QtCore  import QSize
+    from PyQt5.QtWidgets  import QFrame,QApplication, QFrame, QWidget
+    from PyQt5.QtGui  import QIcon
+    from PyQt5.QtCore  import QSize, Qt
 else :
     from PyQt4.QtGui  import *
     from PyQt4.QtCore import *
@@ -147,6 +147,7 @@ class TupleCustom3(QWidget,Ui_Tuple3,TupleCustom):
 class MonWidgetPlusieursTuple(Feuille,GereListe):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        print "MonWidgetPlusieursTuple"
         self.indexDernierLabel=0
         self.nomLine="TupleVal"
         self.listeAffichageWidget=[]
@@ -302,6 +303,11 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
   def RBListePush(self):
   # PN a rendre generique avec un truc tel prerempli
       if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
+      if not hasattr(self.editor.readercata.cata[0],'sd_ligne') : self.editor.readercata.cata[0].sd_ligne=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_generateur') : self.editor.readercata.cata[0].sd_generateur=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_transfo') : self.editor.readercata.cata[0].sdtransfo=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_charge') : self.editor.readercata.cata[0].sd_charge=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_moteur') : self.editor.readercata.cata[0].sd_moteur=None
       if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata[0].sd_ligne :
          val=[]
          for k in self.objSimp.jdc.LineDico.keys() :
index 4d281f76938290535bb30298c9716e70d251c3dc..fd35cd2ffd7f659be2ee87bcc2504db700a602e8 100755 (executable)
@@ -58,12 +58,13 @@ class Appli(Ui_Eficas,QMainWindow):
         self.QWParent=None #(Pour lancement sans IHM)
         self.code=code
         self.indice=0
+        self.first=1
         self.dict_reels={}
         if monEnvQT5 : self.recent =  []
         else : self.recent =  QStringList()
         self.ficRecents={}
         self.listeAEnlever=[]
-        self.ListeCode=['Aster','Carmel3D','Cuve2dg','Openturns_Study','Openturns_Wrapper','MAP','ZCracks', 'CarmelCND','MT']
+        self.ListeCode=['Aster','Carmel3D','Cuve2dg','Openturns_Study','Openturns_Wrapper','MAP','ZCracks', 'CarmelCND','MT','PSEN','PSEN_N1']
         self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
 
         if self.salome:
@@ -72,17 +73,24 @@ class Appli(Ui_Eficas,QMainWindow):
           Accas.SalomeEntry = eficasSalome.SalomeEntry
 
         self.multi=multi
+        self.demande=multi # specifique PSEN
         if self.multi == False :
              self.definitCode(code,ssCode)
              if code==None: return
 
-        if not self.salome and hasattr(self.CONFIGURATION,'lang') : langue=self.CONFIGURATION.lang
+        if not self.salome and hasattr (self, 'CONFIGURATION') and hasattr(self.CONFIGURATION,'lang') : langue=self.CONFIGURATION.lang
         if langue=='fr': self.langue=langue
         else           : self.langue="ang"
 
-        from Extensions import localisation
-        app=QApplication
-        localisation.localise(app,langue)
+        #from Extensions import localisation
+        #app=QApplication
+        #localisation.localise(app,langue)
+        #print tr('FORTRAN_FILE')
+        #localisation.localise(app,langue,'titi_fr.qm')
+        #print tr('titi1')
+        #localisation.localise(app,langue,'toto.qm')
+        #print tr('titi1')
+        #print pomu
 
         self.setupUi(self)
         if self.code in ['MAP',] : self.resize(1440,self.height())
@@ -153,7 +161,7 @@ class Appli(Ui_Eficas,QMainWindow):
         self.initPatrons()
         self.initRecents()
         self.initAides()
-        for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution"):
+        for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution","menuN1"):
               if hasattr(self,intituleMenu):
                  menu=getattr(self,intituleMenu)
                  menu.setAttribute(Qt.WA_DeleteOnClose)
@@ -184,6 +192,37 @@ class Appli(Ui_Eficas,QMainWindow):
         self.actionCode.setEnabled(True)
         self.menuAide.addAction(self.actionCode)
 
+    def newN1(self):
+        ssCode=None
+        code="PSEN_N1"
+        self.cleanPath()
+        dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
+        sys.path.insert(0,dirCode)
+        self.code=code
+        self.definitCode(code,ssCode)
+        self.multi=True
+        self.demande=False
+        self.fileNew()
+
+    def newPSEN(self):
+        ssCode=None
+        code="PSEN"
+        self.cleanPath()
+        dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
+        sys.path.insert(0,dirCode)
+        self.code=code
+        self.definitCode(code,ssCode)
+        self.multi=True
+        self.demande=False
+        self.fileNew()
+
+    def ajoutN1(self):
+        self.menuN1 = self.menubar.addMenu(tr("Etude N-1"))
+        self.actionN1 = QAction(self)
+        self.actionN1.setText(tr("Etude N1"))
+        self.menuN1.addAction(self.actionN1)
+        if monEnvQT5 : self.actionN1.triggered.connect(self.newN1)
+        else         : self.connect(self.actionN1,SIGNAL("triggered()"),self.newN1)
 
     def ajoutExecution(self):
         self.menuExecution = self.menubar.addMenu(tr("Execution"))
@@ -292,11 +331,21 @@ class Appli(Ui_Eficas,QMainWindow):
         self.menuOptions.setTitle(tr("Options"))
 
     def PSEN(self):
+        if self.first:
+         self.first=0
+         if monEnvQT5:
+           self.action_Nouveau.triggered.disconnect(self.fileNew)
+           self.action_Nouveau.triggered.connect(self.newPSEN)
+           self
+         else :
+           self.disconnect(self.action_Nouveau,SIGNAL("triggered()"),self.fileNew)
+           self.connect(self.action_Nouveau,SIGNAL("triggered()"),self.newPSEN)
         self.enleverActionsStructures()
         self.enleverParametres()
         self.enleverRechercherDsCatalogue()
         self.enleverNewInclude()
         self.ajoutExecution()
+        self.ajoutN1()
         self.ajoutHelpPSEN()
         self.ajoutIcones()
 
index 70783a5852c5404db88493b8c26789f761519643..aa804fd40bf11bd57bf470ec59b082ac9c7ae30e 100644 (file)
@@ -324,10 +324,10 @@ class READERCATA:
         #    self.cree_rubrique(e,self.dico,0)
         #print self.dicoInverse
 
-        from Extensions import localisation
-        app=QApplication
+        #from Extensions import localisation
+        #app=QApplication
         # tres dommage  A Revoir
-        localisation.localise(app,"fr")
+        #localisation.localise(app,"fr")
         self.dicoInverseFrancais={}
         self.dicoFrancaisAnglais={}
         self.dicoAnglaisFrancais={}
@@ -340,6 +340,7 @@ class READERCATA:
             self.dicoInverseFrancais[tr(k)]=listefr
             #print tr(k),listefr
         if self.appliEficas.langue=="ang" : localisation.localise(app,"en")
+        
          
         
    def traite_entite(self,e):
diff --git a/InterfaceQT4/sauveTELEMAC.py b/InterfaceQT4/sauveTELEMAC.py
new file mode 100644 (file)
index 0000000..71f9e21
--- /dev/null
@@ -0,0 +1,372 @@
+# Copyright (C) 2007-2013   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+import re, string
+from Extensions.i18n import tr
+from Accas.A_BLOC import BLOC
+from Accas import *
+
+                                                                                        
+from convert_python import PythonParser
+
+pattern_comment_slash   = re.compile(r"^\s*/")
+pattern_eta   = re.compile(r".*&ETA.*")
+pattern_fin   = re.compile(r".*&FIN.*")
+pattern_blanc = re.compile(r"^ *$")
+pattern_OUI   = re.compile(r"^ *OUI *")
+pattern_oui   = re.compile(r"^ *oui *")
+pattern_NON   = re.compile(r"^ *NON *")
+pattern_non   = re.compile(r"^ *non *")
+pattern_vide  = re.compile(r"^ *$")
+pattern_texte =re.compile(r"^[\w*'-]+[ *[\w*'-]* *]*[:=] *['](?P<texte>.*)[']")
+# le pattern texte reconnait 
+#nom1 nom 2 : ou = chaine entre ' 
+# avec eventuellement  des quotes au milieu par exemple
+# TITRE = 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$'
+# m.group("texte") va rendre 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$' 
+
+
+#Si le code n est pas Telemac
+try :
+   from aideAuxConvertisseurs import DicoEficasToCas, ListeSupprimeCasToEficas
+   from aideAuxConvertisseurs import ListeCalculCasToEficas, DicoAvecMajuscules
+   from enumDicoTelemac2      import DicoEnumCasEn
+except :
+   pass
+
+from Extensions import localisation
+
+from determine import monEnvQT5
+
+
+
+def entryPoint():
+   """
+   Return a dictionary containing the description needed to load the plugin
+   """
+   return {
+          'name' : 'TELEMAC',
+          'factory' : TELEMACParser
+          }
+
+class TELEMACParser(PythonParser):
+   """
+   This converter works like PythonParser, except that it also initializes all
+   model variables to None in order to avoid Python syntax errors when loading
+   a file with a different or inexistent definition of variables.
+   """
+
+   def convert(self, outformat, appli=None):
+      self.dicoInverseFrancais=appli.readercata.dicoInverseFrancais
+      self.dicoAnglaisFrancais=appli.readercata.dicoAnglaisFrancais
+      self.dicoFrancaisAnglais=appli.readercata.dicoFrancaisAnglais
+      self.dicoMC=appli.readercata.dicoMC
+      self.Ordre_Des_Commandes=appli.readercata.Ordre_Des_Commandes
+   
+
+      #print self.dicoInverseFrancais
+      #text = PythonParser.convert(self, outformat, appli)
+      
+      text=""
+      l_lignes = string.split(self.text,'\n')
+      self.dictSimp={}
+      lignesATraiter=[]
+      for ligne in l_lignes :
+          if pattern_comment_slash.match(ligne) : continue
+          if pattern_eta.match(ligne) : continue
+          if pattern_fin.match(ligne) : continue
+          if pattern_texte.match(ligne) : 
+            lignesATraiter.append(l)
+            continue
+      
+          for l in ligne.split('\t'):
+                lignesATraiter.append(l)
+
+      for ligne in lignesATraiter :
+          if pattern_blanc.match(ligne) : continue
+          ligneInitiale=ligne
+
+          if pattern_texte.match(ligne) : 
+             self.traiteLigneTexte(ligne)
+             continue
+
+          ligne=re.sub("'",' ',ligne)
+          ligne=re.sub(":",'=',ligne)
+          if ligne.count('=') != 1 :
+              print "pb avec la ligne " , ligne
+              continue 
+
+     
+          motsInLigne=string.split(ligne,' ')
+          listeMotsSimp=()
+          simp=""
+          for mot in motsInLigne:
+              if mot == ""   : continue
+             if mot == "="  :
+                 simp=simp[0:-1]
+                 while simp[-1] == " " : simp=simp[0:-1]
+                 if simp.find('-') > 0 : simp=self.redecoupeSimp(simp)
+                 break
+
+              mot=mot.replace('_','__')
+              simp=simp+mot[0].upper() +mot[1:].lower()+'_'
+          valeur=ligne.split('=')[1]
+          self.dictSimp[simp]=valeur
+
+      
+      
+      #print dictSimp
+      #print self.dicoInverseFrancais
+
+      dicoParMC={}
+      #print ListeCalculCasToEficas
+
+      print self.dictSimp.keys()
+      if 'Title' not in self.dictSimp.keys():
+          import os
+          self.dictSimp['Titre']=os.path.basename(self.filename)
+      
+      for simp in self.dictSimp.keys():
+          if simp in TELEMACParser.__dict__.keys() : apply(TELEMACParser.__dict__[simp],(self,))
+
+      for simp in self.dictSimp.keys():
+          if simp in ListeSupprimeCasToEficas: continue
+          if simp not in self.dicoInverseFrancais.keys() : 
+             print "************"
+             print "pb avec ", simp,'------'
+             print "************"
+             continue
+          listeGenea=self.dicoInverseFrancais[simp]
+          listeGeneaReverse=[]
+          for (u,v) in listeGenea : 
+              if isinstance(v,BLOC): continue
+              listeGeneaReverse.append(u)
+          listeGeneaReverse.reverse()
+          dicoTravail=dicoParMC
+          i=0
+          #print (listeGeneaReverse[0:-1])
+          while i < len(listeGeneaReverse[0:-1]) : 
+            mot=listeGeneaReverse[i]
+            i=i+1
+            if mot not in dicoTravail.keys(): dicoTravail[mot]={}
+            dicoTravail=dicoTravail[mot]
+          dicoTravail[simp]=self.dictSimp[simp]
+        
+      self.textePy=""
+      #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+      #print dicoParMC
+      #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+      listeMC=self.tri(dicoParMC.keys())
+      for k in listeMC :
+          #print "----------- traitement de " , k
+          self.textePy += self.dicoFrancaisAnglais[k] + "("
+          self.traiteMC(dicoParMC[k])
+          self.textePy += ");\n"
+          #print "----------- " 
+           
+              
+      print self.textePy
+      return self.textePy 
+
+   def traiteLigneTexte(self,ligne):
+        m=pattern_texte.match(ligne) 
+        valeur=m.group("texte")
+        ligne=ligne[0:ligne.find(valeur)]
+        ligne=re.sub("'",' ',ligne)
+        ligne=re.sub(":",'=',ligne)
+        motsInLigne=string.split(ligne,' ')
+        simp=""
+        for mot in motsInLigne:
+           if mot == ""   : continue
+          if mot == "="  :
+              simp=simp[0:-1]
+              while simp[-1] == " " : simp=simp[0:-1]
+              if simp.find('-') > 0 : simp=self.redecoupeSimp(simp)
+              break
+
+           mot=mot.replace('_','__')
+           simp=simp+mot[0].upper() +mot[1:].lower()+'_'
+        self.dictSimp[simp]=valeur
+
+   def traiteMC(self,dico) :
+       for k in dico.keys() :
+           valeur= dico[k]
+           if k not in self.dicoMC.keys() : kA=self.dicoFrancaisAnglais[k] 
+           else : kA=k
+           obj=self.dicoMC[kA]
+           if isinstance(obj,FACT):   self.generFACT(obj,kA,valeur)
+           elif isinstance(obj,BLOC): self.generBLOC(obj,kA,valeur)
+           elif isinstance(obj,SIMP): self.generSIMP(obj,kA,valeur)
+           else : print "%%%%%%%%%%%\n", "pb generation pour", k, obj, "\n%%%%%%%%%%%"
+
+           #print "_____________"
+
+   def generFACT(self,obj,nom,valeur):
+       if nom in TELEMACParser.__dict__.keys() : 
+          apply(TELEMACParser.__dict__[nom],(self,))
+          return
+       self.textePy +=  nom + "=_F( "
+       self.traiteMC(valeur)
+       self.textePy += '),\n'
+
+
+   def generBLOC(self,obj,nom,valeur):
+       print "BLOC "
+       print nom
+
+   def generSIMP(self,obj,nom,valeur):
+       if nom in ("Prescribed_Flowrates", "Prescribed_Velocities", "Prescribed_Elevations" ): return
+       if obj.max==1 : 
+          if 'TXM' in obj.type :
+              valeur=str(valeur)
+              while valeur[-1] == " " : valeur=valeur[0:-1]
+              while valeur[0]  == " " : valeur=valeur[1:]
+              valeur=valeur[0].upper()+valeur[1:].lower()
+              valeur=tr(valeur)
+          try    : valeur=eval(valeur,{})
+          except : pass
+          if nom in DicoEnumCasEn.keys(): 
+             try    : valeur=DicoEnumCasEn[nom][valeur]
+             except : pass
+          if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type :
+              valeur=str(valeur)
+              while valeur[-1] == " " : valeur=valeur[0:-1]
+              while valeur[0]  == " " : valeur=valeur[1:]
+              self.textePy += nom + "= '" + str(valeur) +"' ,"
+              return
+          if bool in obj.type :
+            if pattern_OUI.match(valeur) or  pattern_oui.match(valeur) : self.textePy += nom + "= True,"
+            if pattern_NON.match(valeur) or  pattern_non.match(valeur) : self.textePy += nom + "= False,"
+            return
+          self.textePy += nom + "=" + str(valeur) +","
+       else :
+          if pattern_vide.match(valeur) : return
+          while valeur[-1] == " " : valeur=valeur[0:-1]
+          while valeur[0]  == " " : valeur=valeur[1:]
+
+          if   ";" in valeur : valeur=valeur.split(';')
+          elif "," in valeur : valeur=valeur.split(',')
+
+          if valeur == None : return
+          newVal=[]
+          for v in valeur :
+            try :    v==eval(v,{})
+            except : pass
+            if nom in DicoEnumCasEn.keys():
+               try    : v=DicoEnumCasEn[nom][v]
+               except : pass
+            newVal.append(v)
+          self.textePy += nom + "=" + str(newVal) +","
+          
+
+
+   def tri(self, listeIn):
+      if len(listeIn) == 1 : return listeIn
+      if self.Ordre_Des_Commandes == None : return listeIn
+      #print self.Ordre_Des_Commandes
+      listeOut=[listeIn[0],]
+      for kF in listeIn[1:]:
+          k=str(self.dicoFrancaisAnglais[kF])
+          ordreK=self.Ordre_Des_Commandes.index(k)
+          i=0
+          while i < len(listeOut):
+             ordreI=self.Ordre_Des_Commandes.index(self.dicoFrancaisAnglais[listeOut[i]])
+             if ordreK < ordreI : break
+             i=i+1
+          listeOut.insert(i,kF)
+      return listeOut
+
+   def Processeurs_Paralleles(self):
+      #YOANN
+      if self.dictSimp["Processeurs_Paralleles"] == 0 : del  self.dictSimp["Processeurs_Paralleles"]
+      else : self.dictSimp["Parallel_Computation"]="Parallel"
+   def decoupeSUPG(self,valeurs,label):
+      i=0
+      for prefixe in ('_U_And_V','_H'):
+          labelComplet=label+prefixe
+          self.dictSimp["labelComplet"]=valeurs[i]
+          i=i+1
+      if len(valeurs)==2 : return
+      for prefixe in ('_K_And_Epsilon','_Tracers'):
+          labelComplet=label+prefixe
+          self.dictSimp["labelComplet"]=valeurs[i]
+          i=i+1
+      
+   def Option_De_Supg(self):
+       print "ds Option_De_Supg"
+       self.decoupeSUPG( self.dictSimp["Option_De_Supg"],"Option_De_Supg")
+       del self.dictSimp["Option_De_Supg"]
+
+   def Forme_De_La_Convection(self):
+       self.decoupeSUPG( self.dictSimp["Forme_De_La_Convection"],"Forme_De_La_Convection")
+       del self.dictSimp["Forme_De_La_Convection"]
+
+   def redecoupeSimp(self,simp): 
+      # replace('-','_')  uniquement dans les identifiants
+      while simp.find('-') > 0 : 
+        ind=simp.find('-')
+        if ind==len(simp)-1 : break
+        simp=simp[0:ind]+'_'+simp[ind+1].upper()+simp[ind+2:]
+      return simp
+
+
+
+   def Liquid_Boundaries(self):
+       texte_Boundaries="Liquid_Boundaries=( "
+       premier=0
+       if 'Prescribed_Elevations' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Prescribed_Elevations"].split(";")
+       elif 'Cotes_Imposees' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Cotes_Imposees"].split(";")
+       else : valeurs=()
+       for e in range(len(valeurs)):
+          if valeurs[e] == "" or valeurs[e] == "\n" : continue
+          if eval(valeurs[e],{})==0 : continue
+          if not premier : premier=1
+          texte_Boundaries += "_F(Type_Condition = 'Prescribed Elevations',\n"
+          texte_Boundaries += "Prescribed_Elevations = " + str(valeurs[e]) + "),\n"
+               
+       if 'Prescribed_Flowrates' in self.dictSimp.keys(): 
+          valeurs=self.dictSimp["Prescribed_Flowrates"].split(";")
+       elif 'Debits_Imposes' in self.dictSimp.keys(): 
+          valeurs=self.dictSimp["Debits_Imposes"].split(";")
+       else : valeurs=()
+       for e in range(len(valeurs)):
+          if valeurs[e] == "" or valeurs[e] == "\n" : continue
+          if eval(valeurs[e],{})==0 : continue
+          if not premier : premier=1
+          texte_Boundaries += "_F(Type_Condition = 'Prescribed Flowrates',\n"
+          texte_Boundaries += "Prescribed_Flowrates = " + str(valeurs[e]) + "),\n"
+               
+       if 'Prescribed_Velocity' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Prescribed_Velocity"].split(";")
+       elif 'Vitesses_Imposees' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Vitesses_Imposees"].split(";")
+       else : valeurs=()
+       for e in range(len(valeurs)):
+          if valeurs[e] == "" or valeurs[e] == "\n" : continue
+          if eval(valeurs[e],{})==0 : continue
+          if not premier : premier=1
+          texte_Boundaries += "_F(Type_Condition = 'Prescribed Velocity',\n"
+          texte_Boundaries += "Prescribed_Velocity = " + str(valeurs[e]) + "),\n"
+       if premier :  texte_Boundaries +="),\n"
+       else : texte_Boundaries="" ; print "pb texte_Boundaries "
+       self.textePy += texte_Boundaries
+      
index f19f512635588208e101b4b7d235c65848d9ecbe..bb41322095ed113ec93c9dd20f1d192732bcc986 100644 (file)
@@ -71,6 +71,7 @@ class PopUpMenuNodeMinimal :
                self.ajoutScript()
     
     def ajoutScript(self):
+
     # cochon mais je n arrive pas a faire mieux avec le mecanisme de plugin
         listeCommandes=self.appliEficas.mesScripts.dict_commandes[self.tree.currentItem().item.get_nom()]
         if type(listeCommandes) != types.TupleType: listeCommandes=(listeCommandes,)
index 82f67770069f6c09251c1302af340147a55ef81a..b75e31a3a8ccab97478c605fb33d1a26d0b61892 100644 (file)
@@ -63,7 +63,7 @@ class MyTabview:
    def handleOpen(self,fichier=None,patron=0,units=None):
        result = None
        if fichier is None:
-            if self.appliEficas.multi==True : 
+            if self.appliEficas.demande==True : 
                self.appliEficas.definitCode(None,None)
                if self.appliEficas.code == None:return
             
@@ -173,7 +173,7 @@ class MyTabview:
        editor.handleSupprimer()
 
    def newEditor(self,include=0):
-       if self.appliEficas.multi==True : 
+       if self.appliEficas.demande==True : 
            self.appliEficas.definitCode(None,None)
            if self.appliEficas.code == None:return
        maPage=self.getEditor(include=include)
diff --git a/PSEN_Eficas/mesScripts_PSEN.py b/PSEN_Eficas/mesScripts_PSEN.py
new file mode 100644 (file)
index 0000000..a64083a
--- /dev/null
@@ -0,0 +1,28 @@
+def exportToCsv(editor,cmd) :
+    #from PyQt4.QtGui import QFileDialog
+    # selection fichier
+    #fn = QFileDialog.getOpenFileName()
+    #if not fn : return
+    #FichieraTraduire=str(fn)
+    print "je suis la"
+    print editor
+    print cmd
+
+def importFromCsv(editor,cmd) :
+    print "et ici"
+
+# le dictionnaire des commandes a la structure suivante :
+# la clef est la commande qui va proposer l action
+# puis un tuple qui contient
+#      - la fonction a appeler
+#       - le label dans le menu du clic droit
+#      - un tuple contenant les parametres attendus par la fonction
+#      - appelable depuis Salome uniquement -)
+#      - appelable depuis un item valide uniquement 
+#      - toolTip
+dict_commandes={
+   'N_1_GENERATORS':( 
+           (exportToCsv,"exportToCsv",('editor','self'),False,False,"export values to cvs File"),
+           (importFromToCsv,"importFromToCsv",('editor','self'),False,False,"import values from cvs File"),
+                    )
+               }
index ef56370ddb30c3e673a108feb96f61f85712f1fe..1e641cfde05a3aa5eaa0e190a03037e5b02bccef 100755 (executable)
@@ -18,8 +18,8 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico
-#from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico2
+#from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico
+from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico2
 
 def INCLUDE(self,PSSE_path,sav_file,**args):
    """ 
index af53e5f64102689ea2e0e83d17876dcdfa0a3d7a..94598c5f725ac199c10381aa3b5d8b706f9721a4 100755 (executable)
@@ -30,7 +30,6 @@ import prefs
 name='prefs_'+prefs.code
 __import__(name)
 
-from PyQt4.QtCore import *
 
 from InterfaceQT4 import eficas_go
 eficas_go.lance_eficas(code=prefs.code)
index ac31d2d3b5c4582f80df8fad812a320bd2a7969a..6912bb5674a8f752772323edc947615cd9b3253d 100644 (file)
@@ -332,6 +332,13 @@ QLineEdit:disabled
                  </property>
                 </widget>
                </item>
+               <item>
+                <widget class="QComboBox" name="CBScripts">
+                 <property name="frame">
+                  <bool>true</bool>
+                 </property>
+                </widget>
+               </item>
                <item>
                 <widget class="QToolButton" name="RBInfo">
                  <property name="minimumSize">
index 0b3e5099c34b417dfae51ad441d2dab613a2b3e9..9d63c15b19beb6b032c095888308be72450950ca 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>938</width>
-    <height>236</height>
+    <height>200</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -19,7 +19,7 @@
   <property name="minimumSize">
    <size>
     <width>0</width>
-    <height>60</height>
+    <height>200</height>
    </size>
   </property>
   <property name="windowTitle">
     <number>2</number>
    </property>
    <property name="rightMargin">
-    <number>2</number>
+    <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>0</number>
+    <number>5</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
      </item>
      <item>
       <layout class="QHBoxLayout" name="horizontalLayout_5">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_3"/>
+       </item>
        <item>
         <widget class="QLineEdit" name="LEFiltre">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="minimumSize">
+          <size>
+           <width>250</width>
+           <height>0</height>
+          </size>
+         </property>
+         <property name="maximumSize">
+          <size>
+           <width>250</width>
+           <height>16777215</height>
+          </size>
+         </property>
          <property name="styleSheet">
           <string notr="true">background:rgb(255,255,255)
 
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_3">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>5</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
        <item>
         <widget class="QToolButton" name="PBFind">
          <property name="minimumSize">
           </size>
          </property>
          <property name="toolTip">
-          <string>Détruit une ligne</string>
+          <string>Cherche la valeur</string>
          </property>
          <property name="styleSheet">
           <string notr="true">border : 0px</string>
          </property>
          <property name="icon">
           <iconset theme="find">
-           <normaloff>.</normaloff>.</iconset>
+           <normaloff/>
+          </iconset>
          </property>
          <property name="iconSize">
           <size>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
       </layout>
      </item>
      <item>
           <x>0</x>
           <y>0</y>
           <width>300</width>
-          <height>122</height>
+          <height>92</height>
          </rect>
         </property>
         <layout class="QGridLayout" name="gridLayout_2">
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
+         <property name="horizontalSpacing">
           <number>0</number>
          </property>
-         <property name="horizontalSpacing">
+         <property name="margin">
           <number>0</number>
          </property>
          <item row="0" column="0">
       <string notr="true">background : rgb(247,247,247)</string>
      </property>
      <property name="frameShape">
-      <enum>QFrame::Box</enum>
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
      </property>
      <property name="lineWidth">
       <number>1</number>
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>419</width>
-        <height>230</height>
+        <width>424</width>
+        <height>193</height>
        </rect>
       </property>
       <property name="sizePolicy">
        <property name="spacing">
         <number>0</number>
        </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
+       <property name="margin">
         <number>0</number>
        </property>
+       <item>
+        <spacer name="verticalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
       </layout>
      </widget>
     </widget>
   <zorder>horizontalSpacer</zorder>
   <zorder>scrollArea</zorder>
   <zorder></zorder>
+  <zorder></zorder>
  </widget>
  <customwidgets>
   <customwidget>