From: pascale.noyret Date: Mon, 30 Jan 2017 15:58:35 +0000 (+0100) Subject: etat du 170130 X-Git-Tag: Salome_8_3_Hydro_2_0rc1~105 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=f8a48da7e7a06dc112581238a0ff37c4f55b8e22;p=modules%2Feficas.git etat du 170130 --- diff --git a/Extensions/localisation.py b/Extensions/localisation.py index 0b20c79a..e7cab01e 100644 --- a/Extensions/localisation.py +++ b/Extensions/localisation.py @@ -48,7 +48,7 @@ def localise(application, locale=None,file=None ): global eficas_translator if locale=="ang" : locale="en" - print "eficas_" + locale, monPath + if file != None : print 'chargement de ', file,monPath print eficas_translator.load(file,monPath) diff --git a/InterfaceQT4/configuration.py b/InterfaceQT4/configuration.py index af63f5d0..0fc5dd9a 100644 --- a/InterfaceQT4/configuration.py +++ b/InterfaceQT4/configuration.py @@ -99,6 +99,7 @@ class CONFIG_BASE: self.closeAutreCommande = False self.closeFrameRechercheCommande = False self.closeEntete = False + self.force_langue=False #-------------------------------------- diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index c5979b79..5da51d1f 100755 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -47,7 +47,7 @@ from monWidgetCreeParam import MonWidgetCreeParam import browser import readercata -DictExtensions= {"MAP" : ".map"} +DictExtensions= {"MAP" : ".map", "TELEMAC" : '.comm'} @@ -881,6 +881,7 @@ class JDCEditor(Ui_baseWidget,QWidget): txt=self.ajoutVersionCataDsJDC(txt) checksum=self.get_checksum(txt) txt=txt+checksum + if self.code=="TELEMAC" : return 1 try: f = open(fn, 'wb') f.write(txt) @@ -1215,6 +1216,37 @@ class JDCEditor(Ui_baseWidget,QWidget): #else : pass + #-----------------------------------------------------------------# + def saveFileLeger(self, path = None, saveas= 0,formatLigne="beautifie"): + #-----------------------------------------------------------------# + extension='.casR' + fn = self.fichier + #saveas=True # Pour forcer le nom + self.generator=generator.plugins[self.format]() + if self.fichier is None or saveas: + if path is None: path=self.CONFIGURATION.savedir + bOK, fn=self.determineNomFichier(path,extension) + if bOK == 0 : return (0, None) + if fn == None : return (0, None) + if fn== '' : return (0, None) + + ulfile = os.path.abspath(unicode(fn)) + self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] + fn = unicode(QDir.toNativeSeparators(fn)) + + self.fichier = os.path.splitext(fn)[0]+extension + + print self.fichier + if hasattr(self.generator, "writeLeger"): + self.generator.writeLeger(self.fichier,self.jdc,config=self.appliEficas.CONFIGURATION,appli=self.appliEficas) + + if self.salome : self.appliEficas.addJdcInSalome( self.fichier) + + self.modified = 0 + nouveauTitre=self.titre+" "+str(os.path.basename(self.fichier)) + self.appliEficas.setWindowTitle(nouveauTitre) + return (1, self.fichier) + #-----------------------------------------------------------------# def saveFile(self, path = None, saveas= 0,formatLigne="beautifie"): #-----------------------------------------------------------------# @@ -1230,7 +1262,6 @@ class JDCEditor(Ui_baseWidget,QWidget): if not self.modified and not saveas: return (0, None) # do nothing if text wasn't changed - extension='.py' if DictExtensions.has_key(self.appli.code) : extension=DictExtensions[self.appli.code] else : diff --git a/InterfaceQT4/monChoixCommande.py b/InterfaceQT4/monChoixCommande.py index a6527387..6ccd4957 100644 --- a/InterfaceQT4/monChoixCommande.py +++ b/InterfaceQT4/monChoixCommande.py @@ -134,7 +134,7 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget): def mouseDoubleClickEvent(self,event): #print self.editor.Classement_Commandes_Ds_Arbre - if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu() + #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu() nodeCourrant=self.node.tree.currentItem() if nodeCourrant==None: nodeCourrant=self.node.tree.racine if self.name != None : @@ -158,19 +158,6 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget): self.node.tree.setCurrentItem(nouveau) event.accept() - def chercheOu(self): - if self.node.tree.racine.childrenComplete==[] : return None - listeNoeud=[] - for node in self.node.tree.racine.childrenComplete : - listeNoeud.append(node.item.object.nom) - indexAvant=-1 - indexStop=self.editor.Classement_Commandes_Ds_Arbre.index(self.name) - for commande in self.editor.Classement_Commandes_Ds_Arbre[:indexStop]: - if commande in listeNoeud: indexAvant=indexAvant+1 - if indexAvant==-1 : self.node.tree.setCurrentItem(None) - else : - nodeASelectionner=self.node.tree.racine.childrenComplete[indexAvant] - self.node.tree.setCurrentItem(nodeASelectionner) def creeListeCommande(self,filtre): diff --git a/InterfaceQT4/monChoixLangue.py b/InterfaceQT4/monChoixLangue.py new file mode 100644 index 00000000..460dd3d2 --- /dev/null +++ b/InterfaceQT4/monChoixLangue.py @@ -0,0 +1,62 @@ +# -*- 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 + +import os,sys,re +from desChoixLangue import Ui_ChoixLangue +from determine import monEnvQT5 +if monEnvQT5: + from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup + from PyQt5.QtGui import QPalette + from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize +else : + from PyQt4.QtGui import * + from PyQt4.QtCore import * + + +# Import des panels + +class MonChoixLangue(Ui_ChoixLangue,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, parentAppli=None): + QDialog.__init__(self,parentAppli) + self.setModal(True) + self.setupUi(self) + self.parentAppli=parentAppli + self.installLangue() + self.code=None + if monEnvQT5: self.pB_OK.clicked.connect(self.choisitLangue) + else : self.connect(self.pB_OK,SIGNAL("clicked()"),self.choisitLangue) + + + def installLangue(self): + if self.parentAppli.langue == 'fr' : self.rbFrancais.setChecked(True) + else : self.rbEnglish.setChecked(True) + + def choisitLangue(self): + if self.rbFrancais.isChecked() : self.parentAppli.langue='fr' + else : self.parentAppli.langue ='ang' + self.close() + diff --git a/InterfaceQT4/monWidgetPlusieursBase.py b/InterfaceQT4/monWidgetPlusieursBase.py index 9ce8aa6b..5274c122 100644 --- a/InterfaceQT4/monWidgetPlusieursBase.py +++ b/InterfaceQT4/monWidgetPlusieursBase.py @@ -107,7 +107,8 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie) nomLineEdit="lineEditVal"+str(index) if hasattr(self,nomLineEdit) : courant=getattr(self,nomLineEdit) - courant.setText(str(val)) + if 'R' in self.objSimp.definition.type and str(val) != repr(val) : courant.setText(repr(val)) + else : courant.setText(str(val)) else : self.ajoutLineEdit(val) index=index+1 diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index 5eb82cc6..494f424b 100755 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -89,13 +89,20 @@ class Appli(Ui_Eficas,QMainWindow): if code==None: return + 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" + if self.CONFIGURATION.force_langue : + from monChoixLangue import MonChoixLangue + widgetLangue = MonChoixLangue(self) + ret=widgetLangue.exec_() + + from Extensions import localisation app=QApplication - localisation.localise(None,langue) + localisation.localise(None,self.langue) self.setupUi(self) #if parent != None : self.parentCentralWidget = parent.centralWidget() @@ -320,9 +327,10 @@ class Appli(Ui_Eficas,QMainWindow): self.connect(self.actionRechercherDsCatalogue,SIGNAL("triggered()"),self.handleRechercherDsCatalogue) def ajoutSortieLegere(self): + if hasattr(self,'actionSortieLegere') : return self.actionSortieLegere = QAction(self) self.actionSortieLegere.setText(tr("Sortie Legere")) - self.menuFichier.addAction(self.actionSortieLegere) + self.menuFichier.insertAction(self.actionEnregistrer_sous,self.actionSortieLegere) if monEnvQT5: self.actionSortieLegere.triggered.connect(self.handleSortieLegere) else : @@ -788,7 +796,7 @@ class Appli(Ui_Eficas,QMainWindow): monOption.show() def handleSortieLegere(self): - print "coucou" + return self.viewmanager.saveLegerCurrentEditor() def handleShowRecentMenu(self): """ diff --git a/UiQT4/CMakeLists.txt b/UiQT4/CMakeLists.txt index a9a7e414..5e60625a 100644 --- a/UiQT4/CMakeLists.txt +++ b/UiQT4/CMakeLists.txt @@ -36,6 +36,7 @@ eficas_compile_ui ( desBaseWidget.ui ) eficas_compile_ui ( desChoixCata.ui ) eficas_compile_ui ( desChoixCode.ui ) eficas_compile_ui ( desChoixCommandes.ui ) +eficas_compile_ui ( desChoixLangue.ui ) eficas_compile_ui ( desRecherche.ui ) eficas_compile_ui ( desRechercheCatalogue.ui ) eficas_compile_ui ( desSelectVal.ui ) diff --git a/UiQT4/desChoixLangue.ui b/UiQT4/desChoixLangue.ui new file mode 100644 index 00000000..7beb2787 --- /dev/null +++ b/UiQT4/desChoixLangue.ui @@ -0,0 +1,125 @@ + + + ChoixLangue + + + + 0 + 0 + 191 + 119 + + + + + 0 + 0 + + + + Langue + + + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 4 + + + 0 + + + + + Français + + + + + + + English + + + + + rbEnglish + rbFrancais + + + + + + QLayout::SetFixedSize + + + + + Qt::Horizontal + + + + 20 + 20 + + + + + + + + + 60 + 30 + + + + Validate choice + + + background-color:rgb(104,110,149); +color :white; +border-radius : 12px + + + + + &OK + + + + + + true + + + true + + + + + + + + + + diff --git a/UiQT4/makefile b/UiQT4/makefile index bbe1c168..ae76eed3 100644 --- a/UiQT4/makefile +++ b/UiQT4/makefile @@ -4,7 +4,7 @@ QTRELEASE = lrelease-qt4 .SUFFIXES : .ui .py .ts .qm -PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \ +PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixLangue.py desChoixCommandes.py \ desRecherche.py desRechercheCatalogue.py \ desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \ desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py \ diff --git a/UiQT5/desChoixLangue.ui b/UiQT5/desChoixLangue.ui new file mode 100644 index 00000000..7beb2787 --- /dev/null +++ b/UiQT5/desChoixLangue.ui @@ -0,0 +1,125 @@ + + + ChoixLangue + + + + 0 + 0 + 191 + 119 + + + + + 0 + 0 + + + + Langue + + + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 4 + + + 0 + + + + + Français + + + + + + + English + + + + + rbEnglish + rbFrancais + + + + + + QLayout::SetFixedSize + + + + + Qt::Horizontal + + + + 20 + 20 + + + + + + + + + 60 + 30 + + + + Validate choice + + + background-color:rgb(104,110,149); +color :white; +border-radius : 12px + + + + + &OK + + + + + + true + + + true + + + + + + + + + + diff --git a/UiQT5/makefile b/UiQT5/makefile index e0518e40..f4da904f 100644 --- a/UiQT5/makefile +++ b/UiQT5/makefile @@ -5,7 +5,7 @@ QTRELEASE = lrelease PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \ - desRecherche.py desRechercheCatalogue.py\ + desChoixLangue.py desRecherche.py desRechercheCatalogue.py\ desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \ desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py \ desWidgetBloc.py desWidgetCB.py desWidgetCommentaire.py desWidgetDate.py \ diff --git a/convert/convert_TELEMAC3.py b/convert/convert_TELEMAC3.py index befdeb48..6bbb4999 100644 --- a/convert/convert_TELEMAC3.py +++ b/convert/convert_TELEMAC3.py @@ -34,7 +34,7 @@ pattern_finit_par_virgule_ou_affect=re.compile(r'^.*(,|;|=|:)\s*$') pattern_ligne=re.compile(r'^\s*(?P[^=:]*)\s*[:=]\s*(?P.*)$') -pattern_variables=re.compile (r"^\s*(?PVARIABLES FOR GRAPHIC PRINTOUTS)\s*[:=]\s*(?P\w(,\w)*)\s*(?P.*)$") +pattern_variables=re.compile (r"^\s*(?PVARIABLES FOR GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES)\s*[:=]\s*(?P[A-Za-z]+(\d*|\*)(,[A-Za-z]+(\d*|\*))*)\s*(?P.*)$") # Attention aux listes de flottants pattern_liste=re.compile(r'^\s*(?P[+-.\w]+(\s*;\s*[+-.\w]+)+)\s*(?P.*)$') @@ -54,12 +54,12 @@ pattern_ContientDouble=re.compile (r"^.*''.*$") #Si le code n est pas Telemac -#try : -if 1 : +try : +#if 1 : from aideAuxConvertisseurs import ListeSupprimeCasToEficas from enumDicoTelemac import TelemacdicoEn -#except : -# pass +except : + pass from Extensions import localisation @@ -100,7 +100,11 @@ class TELEMACParser(PythonParser): text="" self.dictSimp={} - l_lignes_texte = string.split(self.text,'\n') + l_lignes_texte_all = string.split(self.text,'\n') + l_lignes_texte = [] + for l in l_lignes_texte_all : + if not(pattern_comment_slash.match(l)): l_lignes_texte.append(l) + l_lignes=[] i=0 while (i < len(l_lignes_texte)) : @@ -120,7 +124,6 @@ class TELEMACParser(PythonParser): for ligne in l_lignes : - #print "traite ligne" if pattern_comment_slash.match(ligne) : continue if pattern_eta.match(ligne) : continue if pattern_fin.match(ligne) : continue @@ -248,7 +251,7 @@ class TELEMACParser(PythonParser): while ident[0] == " " or ident[0] == '\t' : ident=ident[1:] try : identCata=self.dicoCasToCata[ident] except : - print "---> ", "pb conversion type pour", ident + print "---> ", "pb mot clef pour", ident identCata=None return identCata @@ -442,7 +445,7 @@ class TELEMACParser(PythonParser): if valeursPF == None : valeursPF = listNulle if valeursPV == None : valeursPV = listNulle - print valeursPE,valeursPF,valeursPV + #print valeursPE,valeursPF,valeursPV for e in range(len(valeursPE)): if valeursPE[e] != "" or valeursPE[e] != "\n" : diff --git a/generator/generator_python.py b/generator/generator_python.py index f337dbf7..30b538af 100644 --- a/generator/generator_python.py +++ b/generator/generator_python.py @@ -478,12 +478,13 @@ class PythonGenerator: return l - def format_item(self,valeur,etape,obj): + def format_item(self,valeur,etape,obj,vientDeListe=0): if (type(valeur) == types.FloatType or 'R' in obj.definition.type) and not(isinstance(valeur,Accas.PARAMETRE)) : - # Pour un flottant on utilise str + # Pour un flottant on utilise str ou repr si on vient d une liste # ou la notation scientifique # On ajoute un . si il n y en a pas dans la valeur s = str(valeur) + if vientDeListe and repr(valeur) != str(valeur) : s=repr(valeur) if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : s=s+'.0' clefobj=etape.get_sdname() if self.appli.appliEficas and self.appli.appliEficas.dict_reels.has_key(clefobj): @@ -545,7 +546,7 @@ class PythonGenerator: else : obj.valeurFormatee=[] for val in obj.valeur : - s =s +self.format_item(val,obj.etape,obj) + ',' + s =s +self.format_item(val,obj.etape,obj,1) + ',' if obj.wait_TXM() : obj.valeurFormatee.append(val) else :