]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Fri, 14 Aug 2009 16:04:58 +0000 (16:04 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Fri, 14 Aug 2009 16:04:58 +0000 (16:04 +0000)
49 files changed:
Aster/eficas_aster.py
Ihm/I_JDC.py
Ihm/I_MCSIMP.py
InterfaceQT4/compomacro.py
InterfaceQT4/composimp.py
InterfaceQT4/editor.py
InterfaceQT4/gereTraduction.py
InterfaceQT4/monFonctionPanel.py
InterfaceQT4/monMCListAjoutPanel.py
InterfaceQT4/monRacinePanel.py
InterfaceQT4/monSelectVal.py
InterfaceQT4/monUniqueBasePanel.py
InterfaceQT4/monVisu.py [new file with mode: 0644]
InterfaceQT4/politiquesValidation.py
InterfaceQT4/qtCommun.py
InterfaceQT4/qtEficas.py
InterfaceQT4/qtSaisie.py
InterfaceQT4/readercata.py
InterfaceQT4/typeNode.py
InterfaceQT4/viewManager.py
InterfaceTK/appli.py
InterfaceTK/bureau.py
InterfaceTK/change_comm.py
InterfaceTK/composimp.py
InterfaceTK/eficas.py
InterfaceTK/eficas_go.py
InterfaceTK/faq.py
InterfaceTK/fonctionpanel.py
InterfaceTK/images.py
InterfaceTK/menubar.py
InterfaceTK/panels.py
InterfaceTK/plusieursassdpanel.py
InterfaceTK/plusieursbasepanel.py
InterfaceTK/plusieursintopanel.py
InterfaceTK/plusieurspanel.py
InterfaceTK/shellpanel.py
InterfaceTK/styles.py
InterfaceTK/uniqueassdpanel.py
InterfaceTK/uniquebasepanel.py
InterfaceTK/uniquecomppanel.py
InterfaceTK/uniqueintopanel.py
InterfaceTK/uniquepanel.py
InterfaceTK/uniquesdcopanel.py
Noyau/N_VALIDATOR.py
UiQT4/desMatrice.ui [new file with mode: 0644]
UiQT4/makefile
UiQT4/myMain.ui
convert/parseur_python.py
generator/generator_python.py

index a13a68ce052a04f905c0703d30c49a194b932fd1..bc668a5b32e14418b904862baece226d20167590 100755 (executable)
@@ -27,6 +27,9 @@
 
 # Modules Eficas
 import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
 from InterfaceTK import eficas_go
 
 eficas_go.lance_eficas(code=prefs.code)
index 2b39f2a444d2250267ef4b40e1bb74e975e06bf6..7ccf7bcac6139b633843ef3af4bf67bf7c6469f6 100644 (file)
@@ -73,6 +73,16 @@ class JDC(I_OBJECT.OBJECT):
       l.sort()
       return l
 
+   def get_variables_avant(self,etape):
+      # voir le sort avec IDM 
+      d=self.get_contexte_avant(etape)
+      l=[]
+      for k,v in d.items():
+          if str(type(v)).find('variable') > -1 :
+             l.append(k)
+      l.sort()
+      return l
+
    def get_sd_avant_du_bon_type_pour_type_de_base(self,etape,type):
       """
           Retourne la liste des concepts avant etape d'1 type de base acceptable
index bacc1a131e30f8e85ec60309bd445b8bc42c62fa..dd0f131501324d06fd9e92b9597e3c4aec4c9282 100644 (file)
@@ -80,9 +80,9 @@ class MCSIMP(I_OBJECT.OBJECT):
       # Traitement d'un flottant isolé
       txt = str(self.valeur)
       clefobj=self.GetNomConcept()
-      if self.jdc.appli.dict_reels.has_key(clefobj):
-        if self.jdc.appli.dict_reels[clefobj].has_key(self.valeur):
-           txt=self.jdc.appli.dict_reels[clefobj][self.valeur]
+      if self.jdc.appli.appliEficas.dict_reels.has_key(clefobj):
+        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) :
       # Traitement des listes
       txt='('
@@ -90,9 +90,9 @@ class MCSIMP(I_OBJECT.OBJECT):
       for val in self.valeur:
         if type(val) == types.FloatType : 
            clefobj=self.GetNomConcept()
-           if self.jdc.appli.dict_reels.has_key(clefobj):
-              if self.jdc.appli.dict_reels[clefobj].has_key(val):
-                 txt=txt + sep +self.jdc.appli.dict_reels[clefobj][val]
+           if self.jdc.appli.appliEficas.dict_reels.has_key(clefobj):
+              if self.jdc.appli.appliEficas.dict_reels[clefobj].has_key(val):
+                 txt=txt + sep +self.jdc.appli.appliEficas.dict_reels[clefobj][val]
               else :
                  txt=txt + sep + str(val)
            else :
@@ -123,9 +123,9 @@ class MCSIMP(I_OBJECT.OBJECT):
     val=self.valeur
     if type(val) == types.FloatType : 
       clefobj=self.GetNomConcept()
-      if self.jdc.appli.dict_reels.has_key(clefobj):
-        if self.jdc.appli.dict_reels[clefobj].has_key(val):
-           return self.jdc.appli.dict_reels[clefobj][val]
+      if self.jdc.appli.appliEficas.dict_reels.has_key(clefobj):
+        if self.jdc.appli.appliEficas.appliEficas.dict_reels[clefobj].has_key(val):
+           return self.jdc.appli.appliEficas.dict_reels[clefobj][val]
     if type(val) != types.TupleType :
       try:
         return val.get_name()
index c4e694cb4939281acd433ff6462fc9af0414fe06..b999cbffeb84ec8e3f57099c3cd3fac7f8357bb1 100644 (file)
@@ -123,9 +123,10 @@ class MATERIAUNode(MACRONode):
       texte = f.read()
       f.close()
       from desVisu import DVisu
-      monVisu=DVisu(parent=self.editor,fl=Qt.WType_Dialog)
-      monVisu.TB.setText(texte)
-      monVisu.show()
+      monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
+      monVisuDialg.TB.setText(texte)
+      monVisuDialg.show()
+
 
 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
     itemNode=MATERIAUNode
index fb0efe8bc7d6b902097fe5d1ab577e190569d7e6..ff7932fc40f5f9264ab127418149f026bff9c00e 100644 (file)
@@ -19,8 +19,11 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
         
         # Attention l ordre des if est important        
 
+        if self.item.wait_matrice ():
+               from monMatricePanel import MonMatricePanel
+                klass=MonMatricePanel
         # l'objet prend sa (ses) valeur(s) dans un ensemble discret de valeurs
-        if self.item.has_into():
+        elif self.item.has_into():
             if self.item.is_list() :
                 from monPlusieursIntoPanel import MonPlusieursIntoPanel
                 klass = MonPlusieursIntoPanel
@@ -139,20 +142,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
          is_a_list= self.definition.validators.is_list() * is_a_list
       return is_a_list 
 
-  #def get_into(self,liste_courante=None):
-  #    """
-  #        Cette méthode retourne la liste de choix proposée par le mot cle. Si le mot cle ne propose
-  #        pas de liste de choix, la méthode retourne None.
-  #        L'argument d'entrée liste_courante, s'il est différent de None, donne la liste des choix déja
-  #        effectués par l'utilisateur. Dans ce cas, la méthode get_into doit calculer la liste des choix
-  #        en en tenant compte.
-  #        Cette méthode part du principe que la relation entre into du mot clé et les validateurs est
-  #        une relation de type ET (AndVal).
-  #    """
-  #    if not self.object.definition.validators :
-  #       return self.object.definition.into
-  #    else:
-  #       return self.object.definition.validators.get_into(liste_courante,self.definition.into)
 
   def has_into(self):
       """
@@ -426,12 +415,20 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
         
   def wait_tuple(self):
       """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un shell, 0 sinon """
+      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 wait_matrice(self):
+      """ Méthode booléenne qui retourne 1 si l'objet pointé 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 wait_assd(self):
       """Méthode booléenne qui retourne 1 si l'objet pointé par self
       attend un objet de type ASSD ou dérivé, 0 sinon """
index d12571471637ba806ab95526e4e1c5860e515e26..09f9995241384b27480d2e6af511866cbf55c16d 100644 (file)
@@ -35,7 +35,6 @@ import readercata
 import qtCommun
 
 
-VERSION_EFICAS  = "EFICAS v1.16"
 
 
 class JDCEditor(QSplitter):
@@ -67,7 +66,7 @@ class JDCEditor(QSplitter):
 
         self.code = self.appliEficas.CONFIGURATION.code
         self.version_code = VERSION_CODE
-        self.titre=VERSION_EFICAS + ' pour '+ self.code
+        self.titre=self.appliEficas.VERSION_EFICAS + ' pour '+ self.code
 
         self.dict_reels={}
         self.liste_simp_reel=[]        
@@ -207,10 +206,10 @@ class JDCEditor(QSplitter):
         # Il faut convertir le contenu du fichier en fonction du format
         if convert.plugins.has_key( self.appliEficas.format_fichier ):
              # Le convertisseur existe on l'utilise
-             appli = self 
+             #appli = self 
              p=convert.plugins[self.appliEficas.format_fichier]()
              p.readfile(fn)         
-             text=p.convert('exec',appli)
+             text=p.convert('exec',self.appliEficas)
              if not p.cr.estvide():                 
                 self.affiche_infos("Erreur à la conversion")
         else :
index 025d63cb2cadc0bb6739a64119f6639965ce9dda..307ffa89f20330a9cf45235a56cc87e7fbafa7ad 100644 (file)
@@ -1,5 +1,6 @@
 from PyQt4 import *
 from PyQt4.QtGui import *
+from PyQt4.QtCore import *
 import os
 
 
@@ -10,7 +11,11 @@ def traduction(directPath,editor,version):
     if version == "V8V9" : 
        from Traducteur import traduitV8V9 
        suffixe="v9.comm"
-    fn = QFileDialog.getOpenFileName( QString(directPath) , "")
+    fn = QFileDialog.getOpenFileName( 
+                       editor.appliEficas,
+                        editor.appliEficas.trUtf8('Traduire Fichier'),
+                       QString(directPath) ,
+                        editor.appliEficas.trUtf8('JDC Files (*.comm);;''All Files (*)'))
 
     FichieraTraduire=str(fn)
     if (FichieraTraduire == "" or FichieraTraduire == () ) : return
@@ -43,10 +48,10 @@ def traduction(directPath,editor,version):
        except :
          pass
 
-    from desVisu import DVisu
+    from monVisu import DVisu
     titre = "conversion de "+ FichieraTraduire
-    monVisu=DVisu(parent=editor,fl=Qt.WType_Dialog)
-    monVisu.setCaption(titre)
-    monVisu.TB.setText(texte)
-    monVisu.show()
+    monVisuDialg=DVisu(parent=editor.appliEficas,fl=0)
+    monVisuDialg.setWindowTitle(titre)
+    monVisuDialg.TB.setText(texte)
+    monVisuDialg.show()
 
index 0909093ff16900967784bc02df0385d97cbbe1aa..8310c1ebb9e3ebf722436d71d0959b4b7a3c03a3 100644 (file)
@@ -77,24 +77,32 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         listeValeurs=self.node.item.GetListeValeurs()
         if self.node.item.wait_tuple()== 1 :
              listeATraiter=listeValeurs
+              for valeur in listeATraiter:
+                  str_valeur=str(valeur)
+                  self.LBValeurs.addItem(str_valeur)
         else : 
-              listeATraiter=self.DecoupeListeValeurs(listeValeurs)
-        for valeur in listeATraiter:
-            str_valeur=str(valeur)
-            self.LBValeurs.addItem(str_valeur)
+             for valeur in self.DecoupeListeValeurs(listeValeurs):
+                   if type(valeur) == types.TupleType:
+                       TupleEnTexte="("
+                       for val in valeur :
+                           TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+                       TupleEnTexte = TupleEnTexte[0:-2] +")"
+                       print TupleEnTexte
+                       self.LBValeurs.addItem(TupleEnTexte)
+                   else :
+                       self.LBValeurs.addItem(QString(str(valeur)))
+
 
   def  Ajout1Valeur(self,liste=[]):
         # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
+        validite=1
         if liste == [] :
            if self.node.item.wait_tuple()== 1 :
               liste=SaisieValeur.TraiteLEValeurTuple(self)
               if liste == [''] : return
-              validite=1
            else :
               liste,validite=SaisieValeur.TraiteLEValeur(self)
-        else :
-           validite=1
-        if validite == 0 : return
+              if validite == 0 : return
         if liste ==[]    : return
 
         if len(liste) != self.nbValeurs :
@@ -109,14 +117,15 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         if self.node.item.wait_tuple()== 1 :
               liste2=tuple(liste)
               liste=liste2
+
         index=self.LBValeurs.currentRow()
         if ((self.LBValeurs.isItemSelected(self.LBValeurs.item(index )) == 0) and (index > 0 )):
            index=0
         else :
            index=self.LBValeurs.currentRow() + 1
         indexListe=index*self.nbValeurs
-        if index == 0 : 
-           indexListe=len(self.listeValeursCourantes)
+        if index == 0 : indexListe=len(self.listeValeursCourantes)
+
         listeVal=[]
         for valeur in self.listeValeursCourantes :
                 listeVal.append(valeur)
@@ -137,7 +146,13 @@ class MonFonctionPanel(MonPlusieursBasePanel):
            else : 
               listeATraiter=self.DecoupeListeValeurs(listeRetour)
            for valeur in  listeATraiter :
-               str_valeur=str(valeur)
+               if type(valeur) == types.TupleType:
+                  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)
index 475a51f16ec3eed17f922048cedb0601c4fc55c3..3824d3d52332988f437c213e0464747b9cb45c92 100644 (file)
@@ -62,10 +62,8 @@ class MonMCListAjoutPanel(DMCListAjout,QTPanel):
         self.connecterSignaux()
 
   def connecterSignaux(self):
-        self.connect(self.BOk,SIGNAL("clicked()"),self.BAjoutClicked)
         self.connect(self.bAjout,SIGNAL("clicked()"),self.BAjoutClicked)
 
-
   def BAjoutClicked(self):
         self.node.treeParent.append_child(self.node.item.get_nom())
 
index a614405ec79ce3b434fdd98c37d93870e002b00b..1f5b707bda180f6104070d974e4be4a3f2b96436 100644 (file)
@@ -61,7 +61,8 @@ class MonRacinePanel(DRac,QTPanelTBW2):
         self.connecterSignaux()
         QTPanel.__init__(self,node,parent)
         QTPanelTBW2.__init__(self,node,parent,racine=1)
-        self.a=0
+        self.LEFiltre.setFocus()
+
 
   def connecterSignaux(self):
         self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
index 421682a3f6d32a62d0bcaa6cc292d7bfd6271b96..e856b6558b63f762fdae916e36df611921ee2f36 100644 (file)
@@ -96,8 +96,8 @@ class MonSelectVal(DSelVal):
           if val != '' and val != ' ' and val != self.separateur :
             val=str(val)
             try :
-              val=eval(val,{})
+               val2=eval(val,{})
+               liste.append(val)
             except :
               pass
-            liste.append(val)
         self.FonctPanel.AjoutNValeur(liste) 
index d7cb28a585e4bc979d0f33c4a142375a59cc5326..392dbe6f9522de3f4a049bcf22796e78dab92334 100644 (file)
@@ -67,6 +67,7 @@ class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur):
         self.InitCommentaire()
         self.detruitBouton()
         self.connecterSignaux()
+        self.lineEditVal.setFocus()
 
   def connecterSignaux(self) :
         self.connect(self.bOk,SIGNAL("clicked()"),self.BOk2Pressed)
diff --git a/InterfaceQT4/monVisu.py b/InterfaceQT4/monVisu.py
new file mode 100644 (file)
index 0000000..c5fa4fd
--- /dev/null
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+# Modules Python
+# Modules Eficas
+
+from desVisu import Ui_DVisu
+from PyQt4  import *
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+# Import des panels
+
+class DVisu(Ui_DVisu ,QtGui.QDialog):
+  """
+  Classe définissant le panel associé aux mots-clés qui demandent
+  à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+  discrètes
+  """
+  def __init__(self,parent = None , name = None,fl = 0):
+      QtGui.QDialog.__init__(self,parent)
+      self.setModal(True)
+      self.setupUi(self)
+
+  def on_buttonCancel_clicked(self):
+      QDialog.reject(self)
+
+  def on_buttonOk_clicked(self):
+      QDialog.accept(self)
+
index 062f9a870cce77db7a569f16586a714264561857..7309c3391343e8ce2627b991103c28fe3a71b0ad 100644 (file)
@@ -62,10 +62,14 @@ class Validation  :
                         if str(clef) != str(texteValeur) :
                            self.node.item.object.init_modif()
                            clefobj=self.node.item.object.GetNomConcept()
-                           if not self.parent.dict_reels.has_key(clefobj):
-                              self.parent.dict_reels[clefobj] = {}
-                           self.parent.dict_reels[clefobj][clef]=texteValeur
-                           self.parent.dict_reels[clefobj]
+                           if not self.parent.appliEficas.dict_reels.has_key(clefobj):
+                              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.parent.appliEficas.dict_reels.has_key(self.node.item.object.etape) :
+                                 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.fin_modif()
          except:
             pass
@@ -74,11 +78,42 @@ class Validation  :
          valeurTexte=valeur
          if "R" in self.node.item.object.definition.type:
                   clefobj=self.node.item.object.GetNomConcept()
-                  if self.parent.dict_reels.has_key(clefobj):
-                     if self.parent.dict_reels[clefobj].has_key(valeur):
-                        valeurTexte=self.parent.dict_reels[clefobj][valeur]
+                  if self.parent.appliEficas.dict_reels.has_key(clefobj):
+                     if self.parent.appliEficas.dict_reels[clefobj].has_key(valeur):
+                        valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur]
          return valeurTexte
 
+  def AjoutDsDictReel(self,texteValeur):
+         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 self.parent.appliEficas.dict_reels.has_key(clefobj):
+                          self.parent.appliEficas.dict_reels[clefobj] = {}
+                      self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                      if clefobj=="" : 
+                         if not self.parent.appliEficas.dict_reels.has_key(self.node.item.object.etape) :
+                            self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                         self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
+                          
+         except:
+          #else :
+            #print "pb ds try de AjoutDsDictReel"
+            pass
+
+  def AjoutDsDictReelEtape(self):
+      print self.parent.appliEficas.dict_reels
+      print self.node.item.object
+      try:
+         if self.parent.appliEficas.dict_reels.has_key(self.node.item.object) :
+            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) :
 #------------------------------------
@@ -104,9 +139,9 @@ class PolitiqueUnique(Validation) :
          return validite, commentaire 
 
  
-#------------------------
-class PolitiquePlusieurs:
-#------------------------
+#--------------------------------------
+class PolitiquePlusieurs(Validation):
+#--------------------------------------
   """
   classe servant pour les entrees ne demandant qu un mot clef
   """
@@ -120,14 +155,15 @@ class PolitiquePlusieurs:
          commentaire="Nouvelle valeur acceptée"
          commentaire2=""
          valide=1
+         if listevaleur==None: return
+         if listevaleur=="": return
          if not( type(listevaleur)  in (types.ListType,types.TupleType)) :
             listevaleur=tuple(listevaleur)
          for valeur in listevaleur :
              # On teste le type de la valeur
+             valeurScientifique=valeur
              valide=self.node.item.valide_item(valeur)
              if not valide :
-                #print self.__class__
-                #if not testtype :
                 try :
                    valeur,valide=self.node.item.eval_valeur(valeur)
                    valide,commentaire = self.node.item.object.verif_type(valeur)
@@ -149,8 +185,10 @@ class PolitiquePlusieurs:
                    commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
                    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)
index 5e50d0e40778f1aed5d941866db6d7463a6e1db5..6c5a557c3d21940ad2dd9ac02968cef9ecf8094d 100644 (file)
@@ -136,6 +136,7 @@ class QTPanelTBW2(QTPanel):
         self.editor    = parent
         self.node      = node
         self.BuildLBNouvCommande()
+        self.LEFiltre.setFocus()
         self.NbRecherches = 0
         if racine == 1 :
            self.AppelleBuildLBRegles()
@@ -145,9 +146,9 @@ class QTPanelTBW2(QTPanel):
 
   def handleCurrentChanged(self):
         try :
-           self.LEFiltre.setFocus()
+            self.LEFiltre.setFocus()
         except :
-           pass
+            pass
 
       
   def BuildLBNouvCommande(self):
@@ -262,6 +263,10 @@ class QTPanelTBW3(QTPanel):
         if nom == '' : return                  # si pas de nom, on ressort sans rien faire
         self.editor.init_modif()
         test,mess = self.node.item.nomme_sd(nom)
+        #Notation scientifique
+        from politiquesValidation import Validation
+        validation=Validation(self.node,self.editor)
+        validation.AjoutDsDictReelEtape()
         self.editor.affiche_infos(mess)
 
 # ------------------------------- #
index 4cbc0cc6aa45b1815f08dbc2951a505da1a25518..f734b0033b26f9c68f13894058e97757d6197f3b 100644 (file)
@@ -19,6 +19,8 @@ class Appli(Ui_Eficas,QMainWindow):
         """
         Constructor
         """
+        print self
+        self.VERSION_EFICAS="Eficas QT4 V1.17"
         self.ihm="QT"
         self.code=code
         self.salome=salome
@@ -26,6 +28,7 @@ class Appli(Ui_Eficas,QMainWindow):
        self.top = self #(pour CONFIGURATION)
         self.QWParent=None #(Pour lancement sans IHM)
         self.indice=0
+        self.dict_reels={}
 
         import prefs
         if salome :
@@ -38,6 +41,7 @@ class Appli(Ui_Eficas,QMainWindow):
 
         self.REPINI=prefsCode.REPINI
         self.RepIcon=prefsCode.INSTALLDIR+"/Editeur/icons"
+        self.INSTALLDIR=prefsCode.INSTALLDIR
         self.CONFIGURATION = configuration.make_config(self,prefsCode.REPINI)
         self.CONFIGStyle = configuration.make_config_style(self,prefsCode.REPINI)
         if hasattr(prefsCode,'encoding'):
@@ -54,7 +58,6 @@ class Appli(Ui_Eficas,QMainWindow):
         self.connecterSignaux() 
 
 
-        #self.monAssistant=QAssistantClient(QString(""), self.viewmanager)
         #if self.salome :
         #   from Editeur import session
         #   self.ouvreFichiers()
@@ -66,6 +69,7 @@ class Appli(Ui_Eficas,QMainWindow):
         self.initRecents()
 
         self.ouvreFichiers()
+        self.setWindowTitle(self.VERSION_EFICAS)
         
     def OPENTURNS(self) :
         self.MenuBar.removeItem(5)
@@ -100,6 +104,9 @@ class Appli(Ui_Eficas,QMainWindow):
         self.connect(self.actionFermer_tout,SIGNAL("activated()"),self.fileCloseAll)
         self.connect(self.actionQuitter,SIGNAL("activated()"),self.fileExit)
 
+        self.connect(self.actionEficas,SIGNAL("activated()"),self.aidePPal)
+        self.connect(self.actionVersion,SIGNAL("activated()"),self.version)
+
         self.connect(self.actionCouper,SIGNAL("activated()"),self.editCut)
         self.connect(self.actionCopier,SIGNAL("activated()"),self.editCopy)
         self.connect(self.actionColler,SIGNAL("activated()"),self.editPaste)
@@ -116,8 +123,6 @@ class Appli(Ui_Eficas,QMainWindow):
 
         #self.connect(self.helpIndexAction,SIGNAL("activated()"),self.helpIndex)
         #self.connect(self.helpContentsAction,SIGNAL("activated()"),self.helpContents)
-        #self.connect(self.helpAboutAction,SIGNAL("activated()"),self.helpAbout)
-        #self.connect(self.aidenew_itemAction,SIGNAL("activated()"),self.helpAbout)
                              
 
     def ouvreFichiers(self) :
@@ -211,18 +216,22 @@ class Appli(Ui_Eficas,QMainWindow):
         traduction(self.CONFIGURATION.rep_user,self.viewmanager,"V8V9")
 
     def version(self) :
-        from desVisu import DVisu
+        from monVisu import DVisu
         titre = "version "
-        monVisu=DVisu(parent=self.viewmanager)
-        monVisu.setCaption(titre)
-        monVisu.TB.setText("Eficas V1.13")
-        monVisu.adjustSize()
-        monVisu.show()
+        monVisuDialg=DVisu(parent=self,fl=0)
+        monVisuDialg.setWindowTitle(titre)
+        monVisuDialg.TB.setText(self.VERSION_EFICAS +QString(" pour ") + self.code)
+        monVisuDialg.adjustSize()
+        monVisuDialg.show()
 
     def aidePPal(self) :
-        maD=INSTALLDIR+"/AIDE/fichiers"
-        docsPath = QDir(maD).absPath()
-        self.monAssistant.showPage( QString("%1/index.html").arg(docsPath) )
+        maD=self.INSTALLDIR+"/Aide"
+        docsPath = QDir(maD).absolutePath()
+        monAssistant=QAssistantClient(QString(""), self)
+        arguments=QStringList()
+        arguments << "-profile" <<docsPath+QDir.separator()+QString("eficas_")+QString(self.code)+QString(".adp");
+        monAssistant.setArguments(arguments);
+        monAssistant.showPage(docsPath+QDir.separator()+QString("fichiers_"+QString(self.code)+QString("/index.html")))
 
     def optionEditeur(self) :
         from monOptionsEditeur import Options
@@ -280,11 +289,12 @@ class Appli(Ui_Eficas,QMainWindow):
         
     def fileExit(self):
         # On peut sortir sur Abort
-        self.viewmanager.handleCloseAll()
-        if self.salome :
-           self.close()
-        else :
-           qApp.closeAllWindows()
+        res=self.viewmanager.handleCloseAll()
+        if (res != 2) : 
+           if self.salome :
+              self.close()
+           else :
+              qApp.closeAllWindows()
         
     def editCopy(self):
         self.viewmanager.handleEditCopy()
@@ -304,9 +314,6 @@ class Appli(Ui_Eficas,QMainWindow):
     def visuJdcPy(self):
         self.viewmanager.handleViewJdcPy()
 
-    def helpAbout(self):
-        import AIDE
-        AIDE.go3(parent=self)
 
     def NewInclude(self):
         self.viewmanager.newIncludeEditor()
index be089958ae4db09c730202941cb72d3aa3f0888e..cd14ed9c9862f9137d124e7da7786f3d5a396df1 100644 (file)
@@ -62,7 +62,8 @@ class SaisieValeur:
         for valeur in lChoix :
             self.listBoxVal.addItem( str(valeur) ) 
         if len(lChoix) == 1 :
-            self.listBoxVal.setCurrentRow(1)
+            self.listBoxVal.setCurrentRow(0)
+            self.listBoxVal.item(0).setSelected(1)
 
   def ClicASSD(self):
          if self.listBoxASSD.currentItem()== None : return
index 9471b022b37c6e877f8c00165aa6cc1d334e18b5..4b257a700f144fe67d82a4f20af6e57856cbaf5f 100644 (file)
@@ -44,13 +44,14 @@ from PyQt4 import *
 from PyQt4.QtGui import *
 from PyQt4.QtCore import *
 
-VERSION_EFICAS="Eficas V1.16"
 
 class READERCATA:
 
    def __init__(self,QWParent, appliEficas):
       self.QWParent=QWParent
       self.appliEficas=self.QWParent.appliEficas
+      print self.appliEficas
+      self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
       self.code=self.QWParent.code
       self.appliEficas.format_fichier='python'
       if hasattr(self.appliEficas,'mode_nouv_commande'):
@@ -91,7 +92,7 @@ class READERCATA:
           self.version_code = liste_cata_possibles[0][1]
           self.appliEficas.format_fichier=liste_cata_possibles[0][3] 
           lab=QString("Eficas V1.") 
-          lab+=QString(VERSION_EFICAS) 
+          lab+=QString(self.VERSION_EFICAS) 
           lab+=QString(" pour ")
           lab+=QString(self.code) 
           lab+=QString(" avec le catalogue ")
@@ -145,7 +146,7 @@ class READERCATA:
       #
       self.traite_clefs_documentaires()
       self.cata=(self.cata,)
-      titre=VERSION_EFICAS + " avec le catalogue " + os.path.basename(self.fic_cata)
+      titre=self.VERSION_EFICAS + " avec le catalogue " + os.path.basename(self.fic_cata)
       if self.appliEficas.top:
         self.appliEficas.setWindowTitle(titre)
       self.appliEficas.titre=titre
@@ -214,7 +215,7 @@ class READERCATA:
       liste_choix = self.dico_catalogues.keys()
       liste_choix.sort()
 
-      lab=QString(VERSION_EFICAS)
+      lab=QString(self.VERSION_EFICAS)
       lab+=QString(" pour ")
       lab+=QString(self.code) 
       lab+=QString(" avec le catalogue ")
@@ -229,7 +230,7 @@ class READERCATA:
       widgetChoix=MonChoixCata(liste_choix,self, self.appliEficas, "", True )
       ret=widgetChoix.exec_()
       
-      lab=QString(VERSION_EFICAS)
+      lab=QString(self.VERSION_EFICAS)
       lab+=QString(" pour ")
       lab+=QString(self.code) 
       lab+=QString(" avec le catalogue ")
index a8443feb29e9fea27afd1b5bdf913d17a4899f65..7890b18e11232491fccc20786a040bff181430f4 100644 (file)
@@ -100,6 +100,8 @@ class PopUpMenuNodePartiel (PopUpMenuNodeMinimal):
         self.paramMenu.addAction(self.ParamApres)
         self.paramMenu.addAction(self.ParamAvant)
         self.menu.addAction(self.Documentation)
+        self.menu.removeAction(self.Supprime)
+        self.menu.addAction(self.Supprime)
 
 
 #-----------------------------------------#
@@ -111,6 +113,8 @@ class PopUpMenuNode(PopUpMenuNodePartiel) :
         self.tree.connect(self.Commente,SIGNAL("activated()"),self.Commenter)
         self.Commente.setStatusTip("commente le noeud ")
         self.commentMenu.addAction(self.Commente)
+        self.menu.removeAction(self.Supprime)
+        self.menu.addAction(self.Supprime)
 
     def Commenter(self):
         item= self.tree.currentItem()
index e4a395633ffbd774de4ee70f81f05854c692b56b..89d76c46178c51108352fc3aede57f30444a490d 100644 (file)
@@ -52,12 +52,11 @@ class MyTabview:
        maPage=self.getEditor( fichier,units=units)
 
    def handleClose(self,doitSauverRecent = 1):
-       #print "passage dans handleClose"
-       #print self.dict_editors
        if doitSauverRecent : self.appliEficas.sauveRecents()
        index=self.myQtab.currentIndex()
        if index < 0 : return
-       self.checkDirty(self.dict_editors[index])
+       res=self.checkDirty(self.dict_editors[index])
+       if res == 2 : return 2             # l utilisateur a annule
        index=self.myQtab.currentIndex()
        idx=index
        while idx < len(self.dict_editors) -1 :
@@ -68,17 +67,18 @@ class MyTabview:
            del self.doubles[self.dict_editors[index]]
        except :
            pass
-       print self.dict_editors
        self.myQtab.removeTab(index)
+       return res
        
 
    def handleCloseAll(self):
+       res=0
        self.appliEficas.sauveRecents()
-       #print "passage dans CloseAll"
-       print "self.dict_editors", self.dict_editors
        while len(self.dict_editors) > 0 :
              self.myQtab.setCurrentIndex(0)
-             self.handleClose(0)
+             res=self.handleClose(0)
+             if res==2 : return res   # l utilsateur a annule
+       return res
         
    def handleEditCopy(self):
        #print "passage dans handleEditCopy"
@@ -99,7 +99,6 @@ class MyTabview:
        editor.handleEditPaste()
 
    def newEditor(self,include=0):
-       #print "passage dans newEditor"
        maPage=self.getEditor()
 
    def newIncludeEditor(self):
@@ -233,8 +232,7 @@ class MyTabview:
         @param editor editor window to check
         @return flag indicating successful reset of the dirty flag (boolean)
         """        
-     
-        print "checkDirty"
+        res=1 
         if (editor.modified) and (editor in self.doubles.keys()) :
             res = QMessageBox.warning(
                      None,
@@ -250,11 +248,10 @@ class MyTabview:
                 fn = self.appliEficas.trUtf8('Noname')
             res = QMessageBox.warning(self.appliEficas, 
                 self.appliEficas.trUtf8("Fichier Modifie"),
-                self.appliEficas.trUtf8("Le fichier <b>%1</b> n a pas ete sauvegarde.")
-                    .arg(fn),
+                self.appliEficas.trUtf8("Le fichier <b>%1</b> n a pas ete sauvegarde.") .arg(fn),
                 self.appliEficas.trUtf8("&Sauvegarder"),
                 self.appliEficas.trUtf8("&Quitter "),
-                self.appliEficas.trUtf8("&Annuler"), 0, 2)
+                self.appliEficas.trUtf8("&Annuler") )
             if res == 0:
                 (ok, newName) = editor.saveFile()
                 if ok:
@@ -262,7 +259,4 @@ class MyTabview:
                     index=self.myQtab.currentIndex()
                     self.myQtab.setTabText(index,fileName)
                 return ok
-            elif res == 2:
-                return  0
-        return 1
-        
+        return res
index 668f00483e006f1473bc0f02fb85a0e041f0d20e..d4714b232b131d09ca9c5aef2c97e05fabd4c820 100644 (file)
@@ -36,6 +36,8 @@ from widgets import showerror
 # Modules Eficas
 import splash
 import prefs
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
 import styles
 from styles import style
 import fontes
@@ -64,6 +66,7 @@ class APPLI:
       self.salome=salome
       self.top=master
       self.top.protocol("WM_DELETE_WINDOW",self.exitEFICAS)
+      self.appliEficas=self
 
       #dimensionnement de la fenetre principale
       #aspect ratio de l'ecran
@@ -138,8 +141,8 @@ class APPLI:
       if (self.test == 0):
          splash._splash.configure(text = "Chargement des paramètres utilisateur")
       import configuration
-      self.CONFIGURATION = configuration.make_config(self,prefs.REPINI)
-      self.CONFIGStyle = configuration.make_config_style(self,prefs.REPINI)
+      self.CONFIGURATION = configuration.make_config(self,prefsCode.REPINI)
+      self.CONFIGStyle = configuration.make_config_style(self,prefsCode.REPINI)
 
   def cree_composants_graphiques(self):
       """
index 2c2d6680727364d17e1f65fc78bd5deacf2b43a1..23e0b10924f90ae505589289ff00cbccc8cf83e9 100644 (file)
@@ -31,6 +31,8 @@ from widgets import showinfo,askyesno,showerror
 # Modules Eficas
 import splash
 import prefs
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
 import convert
 import generator
 import AIDE
@@ -102,11 +104,11 @@ class BUREAU:
                         ('Help24',"view_doc","Documentation de l'objet courant",'jdc')
                        )
    try:
-      menu_defs=prefs.menu_defs['bureau']
+      menu_defs=prefsCode.menu_defs['bureau']
    except:
       pass
    try:
-      button_defs=prefs.button_defs['bureau']
+      button_defs=prefsCode.button_defs['bureau']
    except:
       pass
 
index ab125f95ae855d6ba782ec8929209a9dfe072f75..d44f006b4785d98563c88b4016ac631ca3be1f4f 100755 (executable)
@@ -30,6 +30,8 @@ import os
 from Editeur import import_code
 from Editeur import session
 import prefs
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
 import convert
 import generator
 import string
@@ -47,7 +49,7 @@ class DUP :
        self.top=None
        self.test=2
        import configuration
-       self.CONFIGURATION=configuration.make_config(self,prefs.REPINI)
+       self.CONFIGURATION=configuration.make_config(self,prefsCode.REPINI)
 
        self.load_readercata()
        self.cata=self.readercata.cata
index d278c166e30a7a6b146cc0d04d7ade2c56f56e33..e9df810b19d274fbff9ab58ab29fc102071862c3 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index caf47fb885cf0b3f557af0c033f024a2bda903b4..7a2b841701b664eb902fa94eeade0dfc8ab3de17 100644 (file)
@@ -38,7 +38,10 @@ from widgets import Fenetre
 class EFICAS(appli.APPLI):
 
   try:
-     from prefs import appli_composants
+     import prefs
+     name='prefs_'+prefs.code
+     prefsCode=__import__(name)
+     from prefsCode import appli_composants
   except:
      appli_composants=['readercata','bureau','browser','options']
 
index e6b00c5ce2ad26262e84c35148785bb5986a5694..0a3ef794f6489de1da6b4ed6c7cabd10da1f4707 100644 (file)
@@ -28,11 +28,13 @@ import Tkinter
 
 # Modules Eficas
 import prefs
-if hasattr(prefs,'encoding'):
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
+if hasattr(prefsCode,'encoding'):
    # Hack pour changer le codage par defaut des strings
    import sys
    reload(sys)
-   sys.setdefaultencoding(prefs.encoding)
+   sys.setdefaultencoding(prefsCode.encoding)
    del sys.setdefaultencoding
    # Fin hack
 
index 30764b53e6efd9e8c2052ee5314b4508f53056ca..5893f2f1032d2fa1612cf02a5d9d15a8745e48db 100644 (file)
@@ -29,6 +29,8 @@ from Tkinter import END
 
 # Modules Eficas
 import prefs
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
 import fontes
 
 class FAQ:
@@ -38,7 +40,7 @@ class FAQ:
                                buttons=('Lu',),
                                title="FAQs et limitations d'EFICAS",
                                command = self.lu_FAQ)
-      txt = open(os.path.join(prefs.INSTALLDIR,'Editeur','faqs.txt'),'r').read()
+      txt = open(os.path.join(prefsCode.INSTALLDIR,'Editeur','faqs.txt'),'r').read()
       Texte = Pmw.ScrolledText(self.Dialog.interior(),
                                text_font=fontes.standard)
       Texte.insert(END,txt)
index b17704d503765d63f816916ff50ee6baee1d1282..07fc9ea74ef919ea00817c15c03a73909272f521 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index a6f0a74e01a47182266f66d4b2e73c8ed0cba676..a63e422bc80779f8a567d825bd41226189f7a073 100644 (file)
@@ -42,7 +42,9 @@ if __name__ == '__main__':
 
 try:
    import prefs
-   ICONDIR=prefs.ICONDIR
+   name='prefs_'+prefs.code
+   prefsCode=__import__(name)
+   ICONDIR=prefsCode.ICONDIR
 except:
    # Par defaut on utilise le repertoire local icons
    ICONDIR=os.path.join(os.path.abspath(os.path.dirname(__file__)),'/Editeur/icons')
index 119bbdfa86acac10c1115fcfc01c4a3ee2cc01b8..2a64cad9939a9dc636b211720e77ca3f1c27e08f 100644 (file)
@@ -33,7 +33,9 @@ class MENUBAR:
       self.init()
 
    try:
-      from prefs import labels
+      import prefs
+      name='prefs_'+prefs.code
+      from prefsCode import labels
    except:
       labels= ('Fichier','Edition','Jeu de commandes','Catalogue','Options','Aide','Traduction')
 
index d1f724913e0ba4f337cea5d0a4a986a77c751d5f..8932efd3e4b09240a3d5221025795690af503130 100644 (file)
@@ -29,6 +29,8 @@ import widgets
 from widgets import ListeChoix, showerror
 from widgets import ListeChoixParGroupes
 import prefs
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
 import options
 
 SEPARATEUR = '-'*30
@@ -217,7 +219,7 @@ class Panel(Frame) :
       texte_infos = ''
       for e in cmd.entites.keys() :
           if e == name :
-              texte_infos=getattr(cmd.entites[e],prefs.lang)
+              texte_infos=getattr(cmd.entites[e],prefsCode.lang)
               break
       if texte_infos == '' : texte_infos="Pas d'infos disponibles"
       self.parent.appli.affiche_infos(texte_infos)
@@ -234,7 +236,7 @@ class Panel(Frame) :
   def selectCmd(self,name):
       """ On retrouve la commande sous le curseur pour affichage du fr """
       if name != 'COMMENTAIRE' and name != SEPARATEUR:
-          texte_infos=getattr(self.parent.jdc.get_cmd(name),prefs.lang)
+          texte_infos=getattr(self.parent.jdc.get_cmd(name),prefsCode.lang)
           self.parent.appli.affiche_infos(texte_infos)
           
   def defCmd(self,name):
index 3e5eb99bb81e1d033bb2de9e5d6cad956b97c16e..6375af36e1121624d0a82ff691e28f37b0eb22b9 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index 34af53e9849c01be25b2fe7ea3d7fbf700d4bcf6..bf3954935c345320e1be60b51b591080ff6816ca 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import showinfo
index d5ef1e15327c2ca9fa5d922a727af2a29822d3cf..5486b45828adf9acae6e28111b4bb9bb2babb5ac 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index 0a21907e646b718669b91b24d1205539f7c70591..2db451ae4597cecb66d58c3d37bd9eea7b7998a8 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index b76821986400de7b1ae8cd5076c7df1c991896e0..6bd5a104930205d4bd5b0fdb1e26e4bdc4e03466 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-#import prefs
 #import panels
 #import images
 #from widgets import ListeChoix
index 8febcbb947f1fb561c0005ff3477270ad6ab0d78..5b4a27fcf3681a9dc208e525e677d16c2de9b1b5 100644 (file)
@@ -1,10 +1,12 @@
 # -*- coding: utf-8 -*-
 import os
 import prefs
+name='prefs_'+prefs.code
+prefsCode=__import__(name)
 import basestyle
 from basestyle import STYLE,style
 
-inistylefile=os.path.join(prefs.REPINI,"style.py")
+inistylefile=os.path.join(prefsCode.REPINI,"style.py")
 if os.path.isfile(inistylefile):
    execfile(inistylefile)
 
index 27edcd9708410dc3f60701e53b285a3de46b746a..581a7b98eee4831e0b23ffffbc90f02215850b05 100644 (file)
@@ -26,7 +26,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index b7a71beb54f8fed8f560d3f428aee0d4808574f6..847ae02aaae8fca8ce0fc969d421b295dc2f2326 100644 (file)
@@ -28,7 +28,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import FenetreDeParametre
index 80d9aa77f8a3ad6b18c46af6f4c93690af698535..f8a70f823e9fa8eb695a4a02f660ac2310fc3e2f 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index 76133cd53278988f942f56834c164f18b005b86d..ae8e3a7679a3c85ac7e5b824a1a8d309813a4771 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index 90b3b9d9f189c103ad1151eef9a0c479e5d1f38d..a04c37fdf070d1cebe71400b6e6bd31b9d254d19 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index a9e326c585dbc17eca3a4fb695626c17c00f7481..5dd2006976e4c73253239704982701b8c62503a8 100644 (file)
@@ -27,7 +27,6 @@ import traceback
 
 # Modules Eficas
 from Editeur import Objecttreeitem
-import prefs
 import panels
 import images
 from widgets import ListeChoix
index 21fa1f26744035957105650083321082449c61f9..57b0de9dec5c812485b9a19d65432b220a8a00c1 100644 (file)
@@ -126,6 +126,10 @@ class TypeProtocol(PProtocol):
                 if type(obj)==types.StringType:return obj
             elif type(type_permis) == types.ClassType or isinstance(type_permis,type):
                 if self.is_object_from(obj,type_permis):return obj
+            elif type_permis == 'Fichier' :
+                 import os
+                 if os.path.isfile(obj):return obj
+                 else : raise ValError("%s n'est pas un fichier valide" % repr(obj))
             elif type(type_permis) == types.InstanceType or isinstance(type_permis,object):
                 try:
                     if type_permis.__convert__(obj) : return obj
diff --git a/UiQT4/desMatrice.ui b/UiQT4/desMatrice.ui
new file mode 100644 (file)
index 0000000..e7b433e
--- /dev/null
@@ -0,0 +1,66 @@
+<ui version="4.0" >
+ <class>desMatrice</class>
+ <widget class="QDialog" name="desMatrice" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout" >
+   <item row="0" column="0" >
+    <widget class="QTableWidget" name="TBMatrice" />
+   </item>
+   <item row="1" column="0" >
+    <widget class="QDialogButtonBox" name="buttonBox" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons" >
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>desMatrice</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>desMatrice</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
index 9293659e576f2eff1550eecc914467cd3878aee9..81bbacf0d18244a218370626ca0ed2bfad5b0290 100644 (file)
@@ -8,7 +8,7 @@ PY_FILES = desChoixCata.py desCommande.py desCommentaire.py desError.py desFormu
        desPlusieursBase.py desPlusieursInto.py desPoursuite.py desRacine.py desSelectVal.py \
        desUniqueASSD.py desUniqueBase.py desUniqueComp.py desUniqueInto.py desUniqueSDCOInto.py \
        desUniqueSDCO.py desVisu.py  aideQT.py OptionsEditeur.py OptionsPdf.py myMain.py \
-       desViewTexte.py desPixmap.py
+       desViewTexte.py desPixmap.py desMatrice.py
 
 %.py:%.ui
        ${PYUIC} -x -o $@ $<
index d658dd50ab038516ed97db0708f3829d75370d22..0150f2e4c55c056119e683d397c0643a7dc2f672 100644 (file)
@@ -57,6 +57,8 @@
     <property name="title" >
      <string>&amp;Aide</string>
     </property>
+    <addaction name="actionEficas" />
+    <addaction name="actionVersion" />
    </widget>
    <widget class="QMenu" name="menuOptions" >
     <property name="title" >
     <string>TraduitV8V9</string>
    </property>
   </action>
+  <action name="actionEficas" >
+   <property name="text" >
+    <string>Eficas</string>
+   </property>
+  </action>
+  <action name="actionVersion" >
+   <property name="text" >
+    <string>Version</string>
+   </property>
+  </action>
  </widget>
  <resources/>
  <connections/>
index 68dc89052dcbf0a0aaf3ae7a528d9041a56c4014..adc6fcc4933b083c54bb4320712a11715dd2413c 100644 (file)
@@ -613,6 +613,7 @@ class PARSEUR_PYTHON:
              dict_reel_concept=construit_genea(epure2,self.appli.liste_simp_reel)
            else:
              dict_reel_concept={}
+        if nomConpet='sansnom' : nomConcept=''
         if nomConcept !=None :
            if len(dict_reel_concept) != 0:
               self.appli.dict_reels[nomConcept]=dict_reel_concept
@@ -623,10 +624,12 @@ class PARSEUR_PYTHON:
         """
         self.appli=appli
         try:
+        #if 1:
             if not self.l_objets : self.analyse()
             txt=''
             for obj in self.l_objets:
                 txt = txt+str(obj)
+        #else :
         except ParserException:
             #Impossible de convertir le texte, on le retourne tel que
             txt=self.texte
index 745ff6565a8c8da87bcb34740f10d62bb77981a6..a5407ee44fae305254128d61380f6614fc92043c 100644 (file)
@@ -476,9 +476,9 @@ class PythonGenerator:
          # ou la notation scientifique
          s = str(valeur)
          clefobj=etape.get_sdname()
-         if self.appli and self.appli.dict_reels.has_key(clefobj):
-           if self.appli.dict_reels[clefobj].has_key(valeur):
-             s=self.appli.dict_reels[clefobj][valeur]
+         if self.appli.appliEficas and self.appli.appliEficas.dict_reels.has_key(clefobj):
+           if self.appli.appliEficas.dict_reels[clefobj].has_key(valeur):
+             s=self.appli.appliEficas.dict_reels[clefobj][valeur]
       elif type(valeur) == types.StringType :
          if valeur.find('\n') == -1:
             # pas de retour chariot, on utilise repr