]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
pour ne pas loader le driver pyxb lorqu on genere le xsd
authorpascale.noyret <pascale.noyret@edf.fr>
Wed, 16 Sep 2020 14:10:45 +0000 (16:10 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Wed, 16 Sep 2020 14:10:45 +0000 (16:10 +0200)
InterfaceQT4/eficas_go.py
InterfaceQT4/qtEficas.py
InterfaceQT4/qtEficasSsIhm.py
InterfaceQT4/readercata.py

index f06de6852abce6663c9aafb34cc6867d06b64d2f..763af0115e56804a0f812fd4d7f7861fd53602b5 100755 (executable)
@@ -62,8 +62,8 @@ def lanceEficas(code=None, multi=False, langue='en', labelCode=None):
     res=app.exec_()
     sys.exit(res)
 
-def getEficasSsIhm(code=None, multi=False, langue='en', labelCode=None,forceXML=False):
-#-------------------------------------------------------------------------------------
+def getEficasSsIhm(code=None, multi=False, langue='en', labelCode=None,forceXML=False, genereXSD=False):
+#------------------------------------------------------------------------------------------------------
     """
         Lance l'appli EFICAS sans Ihm
     """
@@ -73,7 +73,7 @@ def getEficasSsIhm(code=None, multi=False, langue='en', labelCode=None,forceXML=
     if forceXML : options.withXSD=True
 
     from InterfaceQT4.qtEficasSsIhm import AppliSsIhm
-    Eficas=AppliSsIhm(code=code, salome=0, multi=multi, langue=langue, labelCode=labelCode)
+    Eficas=AppliSsIhm(code=code, salome=0, multi=multi, langue=langue, labelCode=labelCode, genereXSD=genereXSD)
     return Eficas
 
 
@@ -87,7 +87,7 @@ def genereXSD(code=None):
        print ('Use -c cata_name.py')
        return
 
-    monEficasSsIhm = getEficasSsIhm(code=options.code)
+    monEficasSsIhm = getEficasSsIhm(code=options.code,genereXSD=True)
     monEditor=monEficasSsIhm.getEditor()
     texteXSD=monEficasSsIhm.dumpXsd(avecEltAbstrait=options.avecEltAbstrait)
 
index dab76fd3592d85fb393c2373ad95357806471350..0b9f14a5222376e6a89c4dda7394f039881f9265 100755 (executable)
@@ -976,17 +976,19 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.lesFonctionsUtilisateurs={}
         if self.code not in self.mesScripts : return
         if not hasattr(self.mesScripts[self.code],'dict_menu') : return
-        titre,lesFonctions=self.mesScripts[self.code].dict_menu.items()[0]
-        self.menuOptions = self.menubar.addMenu("menuOptions")
-        self.menuOptions.setTitle(tr(titre))
-        for elt in lesFonctions :
-            laFonctionUtilisateur, label, lesArguments = elt
-            action = QAction(self)
-            action.setText(label)
+        for monMenu in iter(self.mesScripts[self.code].dict_menu.items()) :
+            titre,lesFonctions= monMenu
+            self.menuOptions = self.menubar.addMenu("menuOptions")
+            self.menuOptions.setTitle(tr(titre))
+            for elt in lesFonctions :
+               laFonctionUtilisateur, label, lesArguments = elt
+               action = QAction(self)
+               action.setText(label)
             #action.triggered.connect(self.appelleFonctionUtilisateur)
-            self.menuOptions.addAction(action)
-            self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments)
-        self.menuOptions.triggered.connect(self.handleFonctionUtilisateur)
+               self.menuOptions.addAction(action)
+               self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments)
+            self.menuOptions.triggered.connect(self.handleFonctionUtilisateur)
+
 
     def handleFonctionUtilisateur(self,action) :
         (laFonctionUtilisateur, lesArguments)=self.lesFonctionsUtilisateurs[action]
index 1c1b42b4548ad73bd5fd0cf2d1b0eaf13456c82c..d7896621f41ecf61589a2bd893f9d7e6f344fecf 100755 (executable)
@@ -40,7 +40,7 @@ class AppliSsIhm:
     """
     Class implementing the main user interface.
     """
-    def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None):
+    def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None,genereXSD=False):
         """
         Constructor
         """
@@ -51,6 +51,7 @@ class AppliSsIhm:
         self.salome=salome
         self.ssIhm=True
         self.code=code
+        self.genereXSD=genereXSD
 
         self.dict_reels={}
         self.fichierIn=None
index 21b6f8fa15d11f0ea8eb9f5e9f5c1c9e19529fc0..2d6a8718a97570146aafeef55cf96aa5ea97d7ba 100644 (file)
@@ -216,31 +216,25 @@ class ReaderCata (ReaderCataCommun):
       # import du catalogue
       self.choisitCata()
 
-      if self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD :
-         try :
-           import pyxb
-         except :
-           self.QWParent.informe('environnement', 'please source pyxb environment')
-           exit()
-         try : 
-         #if 1 :
-           nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0]
-           fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0]  
-           #if fichierCataTrunc[0:4] in ('cata','Cata'): fichierCataTrunc=fichierCataTrunc[4:]
-           #if fichierCataTrunc[0] in ('_','-') : fichierCataTrunc=fichierCataTrunc[1:]
-           nomCataXsd = fichierCataTrunc+'_driver' 
-
-    
-           pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py'
-           import imp
-           modeleMetier= imp.load_source(nomCataXsd,pathCata)
-         except :
-         #else:
-           if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ')
-           self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False)
-           modeleMetier = None
-      else :
-           modeleMetier = None
+      modeleMetier = None
+      if not (self.appliEficas.genereXSD) :
+         if (self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD)  :
+           try :
+             import pyxb
+           except :
+             self.QWParent.informe('environnement', 'please source pyxb environment')
+             exit()
+           try : 
+             nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0]
+             fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0]  
+             nomCataXsd = fichierCataTrunc+'_driver' 
+             pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py'
+             import imp
+             modeleMetier= imp.load_source(nomCataXsd,pathCata)
+           except :
+             if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ')
+             self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False)
+             modeleMetier = None
 
       self.cata = self.importCata(self.fichierCata)
       if hasattr(self.cata, 'implement'): self.cata.JdC.implement = self.cata.implement