X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Feditor.py;h=9b79350fff63c6cb855925f45314b8e24fe243d0;hb=1b91010fc2c0a681db9177d6fa0e4e0af866ec31;hp=aeb17793b26cc194b57240441d34d7f09f1de3ae;hpb=e1844ffac8bfa7d564b0cc67c8dad0084b6ef4ad;p=tools%2Feficas.git diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index aeb17793..9b79350f 100755 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -17,23 +17,28 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +from __future__ import absolute_import +from __future__ import print_function +try : + from builtins import str + from builtins import range +except : pass + import types,sys,os, re import subprocess import traceback -from determine import monEnvQT5 -if monEnvQT5: - from PyQt5.QtWidgets import QWidget, QMessageBox, QFileDialog, QApplication, QSplitter - from PyQt5.QtGui import QPalette - from PyQt5.QtCore import QProcess, QFileInfo, QTimer, Qt, QDir, QSize -else : - from PyQt4.QtGui import * - from PyQt4.QtCore import * +import six +from six.moves import range +from PyQt5.QtWidgets import QWidget, QMessageBox, QFileDialog, QApplication, QSplitter +from PyQt5.QtGui import QPalette +from PyQt5.QtCore import QProcess, QFileInfo, QTimer, Qt, QDir, QSize import time import pdb from datetime import date from Extensions.i18n import tr +import traceback # Modules Eficas @@ -42,12 +47,12 @@ from Editeur import session from Editeur import comploader from Editeur import Objecttreeitem from desBaseWidget import Ui_baseWidget -from monViewTexte import ViewText +from InterfaceQT4.monViewTexte import ViewText from monWidgetCreeParam import MonWidgetCreeParam -import browser -import readercata +from . import browser +from . import readercata -DictExtensions= {"MAP" : ".map"} +DictExtensions= {"MAP" : ".map", "TELEMAC" : '.comm'} @@ -78,15 +83,17 @@ class JDCEditor(Ui_baseWidget,QWidget): self.first = True self.QWParent = QWParent self.couleur = Qt.black + self.nodeEnCours=None if appli != None : self.salome = self.appliEficas.salome else : self.salome=0 - print "dans JDC pas d appli ????????" + print ("dans JDC pas d appli ????????") # ces attributs sont mis a jour par definitCode appelee par newEditor - self.code = self.appliEficas.CONFIGURATION.code + self.code = self.appliEficas.CONFIGURATION.code + self.initSplitterSizes() #self.afficheListesPliees=False self.afficheListesPliees=True @@ -96,18 +103,21 @@ class JDCEditor(Ui_baseWidget,QWidget): self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande self.closeAutreCommande=self.appliEficas.CONFIGURATION.closeAutreCommande self.closeFrameRechercheCommande=self.appliEficas.CONFIGURATION.closeFrameRechercheCommande + self.closeArbre=self.appliEficas.CONFIGURATION.closeArbre self.affiche=self.appliEficas.CONFIGURATION.affiche + self.nombreDeBoutonParLigne = self.appliEficas.CONFIGURATION.nombreDeBoutonParLigne + #self.taille = self.appliEficas.taille + #if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False if self.code in ['MAP','CARMELCND'] : self.afficheCommandesPliees=False - if self.code in ['MAP',] : + if self.code in ['MAP',]: self.widgetTree.close() self.widgetTree=None - self.appliEficas.resize(1440,self.appliEficas.height()) - else : - self.appliEficas.resize(1800,self.appliEficas.height()) + if self.closeArbre: self.fermeArbre() self.version_code = session.d_env.cata + if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.multi==True: self.readercata = readercata.READERCATA( self, self.appliEficas ) self.appliEficas.readercata=self.readercata @@ -122,8 +132,6 @@ class JDCEditor(Ui_baseWidget,QWidget): self.format = self.appliEficas.format_fichier self.dict_reels={} - self.splitterSizes = [320,1320,320] - self.oldSizeWidgetOptionnel = 320 self.liste_simp_reel=[] self.ihm="QT" self.dicoNouveauxMC={} @@ -162,11 +170,11 @@ class JDCEditor(Ui_baseWidget,QWidget): self.node_selected = [] self.deplier = True self.message='' - if self.code in ['Adao','MAP'] : self.afficheApresInsert=True + if self.code in ['Adao','ADAO','MAP'] : self.afficheApresInsert=True else : self.afficheApresInsert=False if self.code in ['TELEMAC',] : self.enteteQTree='premier' else : self.enteteQTree='complet' - if self.code in ['Adao','TELEMAC'] : self.affichePlie=True + if self.code in ['Adao','ADAO','TELEMAC'] : self.affichePlie=True else : self.affichePlie=False self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue @@ -180,12 +188,10 @@ class JDCEditor(Ui_baseWidget,QWidget): self.fileInfo = QFileInfo(self.fichier) self.fileInfo.setCaching(0) if jdc==None : - # try : - if 1: + #try : self.jdc = self.readFile(self.fichier) #except : - else : - print "mauvaise lecture" + # print ("mauvaise lecture") else : self.jdc=jdc if self.jdc is not None and units is not None: @@ -227,14 +233,13 @@ class JDCEditor(Ui_baseWidget,QWidget): ############# - self.splitterSizes = [320,1320,320] - self.splitter.setSizes(self.splitterSizes) - self.saveSplitterSizes() + self.adjustSize() #-------------------# Pour execution avec output et error dans le bash def runPSEN(self): #-------------------# + #if self.modified or self.fichier==None : self.saveFile() self.saveFile() @@ -244,43 +249,73 @@ class JDCEditor(Ui_baseWidget,QWidget): import subprocess p = subprocess.Popen(['python',WrapperFilePath]) (out,err)=p.communicate() - print out - print err + print (out) + print (err) #-------------------# Pour execution avec output et error dans le bash def runPSEN_N1(self): #-------------------# - #cmd = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_N1','run.py')) - #cmd = "from run import runPSEN_N1; dico="+str(dico) - #textePython=("python "+ cmd + " "+ str(dico)) - #self._viewTextExecute( textePython,"psen_run",".sh") - if generator.plugins.has_key('dicoImbrique'): + + self.saveFile() + path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) + sys.path.append(path1) + + if not(self.jdc.isvalid()): + QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored")) + if 'dicoImbrique' in generator.plugins: self.generator=generator.plugins['dicoImbrique']() jdc_formate=self.generator.gener(self.jdc) dico=self.generator.Dico ###to delete #fileDico = r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py' - #f = open( str(fileDico), 'wb') - #f.write("Dico =" + str(dico) ) - #f.close() + fileDico = os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py' + f = open( str(fileDico), 'w') + f.write("Dico =" + str(dico) ) + f.close() ### - path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) - sys.path.append(path1) - print 'in runPSEN_N1', dico - #from Run import run + #print ('in runPSEN_N1', dico) + from Run import run + run(dico) #res,txt_exception=run(dico) #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception) #else : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception) - #-------------------# Pour execution avec output et error dans le bash def process_N1(self): #-------------------# - return self.get_Dico() + + path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) + sys.path.append(path1) + + + if 'dicoImbrique' in generator.plugins: + self.generator=generator.plugins['dicoImbrique']() + jdc_formate=self.generator.gener(self.jdc) + dico=self.get_Dico() #generator.Dico + + + for k in dico['CONTINGENCY_PROCESSING']: + #print (k) + if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' : + newK=k.replace('___',' ') + l="'"+str(newK)+"'" + dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k] + del dico['CONTINGENCY_PROCESSING'][k] + + ###to delete + fileDico = os.path.join(path1, 'dicoN1_process.py') + f = open( str(fileDico), 'w') + f.write("Dico =" + str(dico) ) + f.close() + ### + return dico + + #return self.get_Dico() + #--------------------------------# @@ -296,8 +331,11 @@ class JDCEditor(Ui_baseWidget,QWidget): if self.code == "CARMELCND" : texte=self._newJDCCND() if self.code == "ZCRACKS" : texte=self._newZCRACKS() if self.code == "TELEMAC" : texte=self._newTELEMAC() - if self.code == "PSEN" : texte = self._newPSEN() + if self.code == "PSEN" : texte = self._newPSEN() if self.code == "PSEN_N1" : texte = self._newPSEN_N1() + + if hasattr(self.readercata.cata[0],'TEXTE_NEW_JDC') : texte=self.readercata.cata[0].TEXTE_NEW_JDC + #if self.code == "CF" : texte = self._new_CF() # texte=self.newTexteCND @@ -354,7 +392,7 @@ class JDCEditor(Ui_baseWidget,QWidget): Public slot to read the text from a file. @param fn filename to read from (string or QString) """ - fn = unicode(fn) + fn = six.text_type(fn) # ------------------------------------------------------------------------------------ # charge le JDC @@ -362,7 +400,7 @@ class JDCEditor(Ui_baseWidget,QWidget): jdcName=os.path.basename(fn) # Il faut convertir le contenu du fichier en fonction du format - if convert.plugins.has_key( self.appliEficas.format_fichier_in ): + if self.appliEficas.format_fichier_in in convert.plugins: # Le convertisseur existe on l'utilise #appli = self p=convert.plugins[self.appliEficas.format_fichier_in]() @@ -414,7 +452,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #-----------------------# # Il faut convertir le contenu du fichier en fonction du format - if convert.plugins.has_key(self.format): + if self.format in convert.plugins : # Le convertisseur existe on l'utilise p=convert.plugins[self.format]() p.readfile(file) @@ -456,12 +494,8 @@ class JDCEditor(Ui_baseWidget,QWidget): f=open(nomFichier,'w') f.write(txt) f.close() - if monEnvQT5 : - self.monExe.readyReadStandardOutput.connect( self.readFromStdOut) - self.monExe.readyReadStandardError.connect( self.readFromStdErr) - else : - self.connect(self.monExe, SIGNAL("readyReadStandardOutput()"), self.readFromStdOutQT4 ) - self.connect(self.monExe, SIGNAL("readyReadStandardError()"), self.readFromStdErrQT4 ) + self.monExe.readyReadStandardOutput.connect( self.readFromStdOut) + self.monExe.readyReadStandardError.connect( self.readFromStdErr) exe='sh ' + nomFichier self.monExe.start(exe) self.monExe.closeWriteChannel() @@ -499,6 +533,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #-----------------------# def viewJdcSource(self): #-----------------------# + if self.fichier == None : return f=open(self.fichier,'r') texteSource=f.read() f.close() @@ -513,7 +548,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #-----------------------# def viewJdcRapport(self): #-----------------------# - strRapport = unicode( self.jdc.report() ) + strRapport = six.text_type( self.jdc.report() ) # on ajoute les regles self._viewText(strRapport, "JDC_RAPPORT") @@ -594,7 +629,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #---------------------# def handleRechercher(self): #---------------------# - from monRecherche import DRecherche + from .monRecherche import DRecherche monRechercheDialg=DRecherche(parent=self,fl=0) monRechercheDialg.show() @@ -602,7 +637,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #--------------------------------# def handleRechercherDsCatalogue(self): #-----------------------------# - from monRechercheCatalogue import DRechercheCatalogue + from .monRechercheCatalogue import DRechercheCatalogue monRechercheDialg=DRechercheCatalogue(self.QWParent,self) monRechercheDialg.show() @@ -679,12 +714,12 @@ class JDCEditor(Ui_baseWidget,QWidget): indexNoeudOuColler=0 pos='before' else : - #indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler) + indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler) indexNoeudOuColler=self.getTreeIndex(noeudOuColler) try : noeudACopier=self.QWParent.noeud_a_editer[0] - #indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier) + indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier) indexNoeudACopier=self.getTreeIndex(noeudACopier) except : QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe")) @@ -693,9 +728,9 @@ class JDCEditor(Ui_baseWidget,QWidget): if (self.QWParent.edit != "couper"): try: if noeudOuColler == self.tree.racine : - child=noeudOuColler.doPastePremier(noeudACopier) + child=noeudOuColler.doPastePremier(noeudACopier) else : - child=noeudACopier.doPaste(noeudOuColler,pos) + child=noeudACopier.doPaste(noeudOuColler,pos) if child==None or child==0: QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet')) self.message = '' @@ -721,7 +756,6 @@ class JDCEditor(Ui_baseWidget,QWidget): # si possible on renomme l objet comme le noeud couper if (self.QWParent.edit == "couper"): - #try : if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee ')) @@ -841,7 +875,7 @@ class JDCEditor(Ui_baseWidget,QWidget): @return flag indicating success """ - fn = unicode(fn) + fn = six.text_type(fn) if txt == None : txt = self.get_text_JDC(self.format,formatLigne=formatLigne) @@ -854,32 +888,35 @@ 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 = open(fn, 'w') f.write(txt) f.close() return 1 - except IOError, why: + except IOError as why: if (self.appliEficas.ssIhm == False): QMessageBox.critical(self, tr('Sauvegarde du Fichier'), tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why)) else : - print why + print (why) return 0 #-----------------------------------------------------------# def get_text_JDC(self,format,pourRun=0,formatLigne="beautifie"): #-----------------------------------------------------------# - if self.code == "MAP" and not(generator.plugins.has_key(format)): format = "MAP" - if generator.plugins.has_key(format): + if self.code == "MAP" and not(format in generator.plugins): format = "MAP" + if format in generator.plugins: # Le generateur existe on l'utilise self.generator=generator.plugins[format]() try : jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.CONFIGURATION,appli=self.appliEficas) if pourRun : jdc_formate=self.generator.textePourRun - except ValueError,e: + except ValueError as e: QMessageBox.critical(self, tr("Erreur a la generation"),str(e)) + return + if not self.generator.cr.estvide(): self.affiche_infos(tr("Erreur a la generation"),Qt.red) QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC")) @@ -895,7 +932,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #----------------------# def get_Dico(self): #---------------------# - if generator.plugins.has_key('dicoImbrique'): + if 'dicoImbrique' in generator.plugins: self.generator=generator.plugins['dicoImbrique']() jdc_formate=self.generator.gener(self.jdc) dico=self.generator.Dico @@ -911,13 +948,13 @@ class JDCEditor(Ui_baseWidget,QWidget): #------------# fonction="run"+self.code #print fonction - if fonction in JDCEditor.__dict__.keys(): apply(JDCEditor.__dict__[fonction],(self,)) + if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction],(self,) #------------# def saveRun(self): #------------# fonction="saveRun"+self.code - if fonction in JDCEditor.__dict__.keys(): apply(JDCEditor.__dict__[fonction],(self,)) + if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction],(self,) #---------------# def runMAP(self): @@ -956,8 +993,8 @@ class JDCEditor(Ui_baseWidget,QWidget): # os.system(commande) #except : # pass - except Exception, e: - print traceback.print_exc() + except Exception as e: + print((traceback.print_exc())) #-------------------# def runZCRACKS(self): @@ -977,8 +1014,8 @@ class JDCEditor(Ui_baseWidget,QWidget): commande="more " textePython=(commande + self.fichierZcracksInput) self._viewTextExecute( textePython,"run_zcracks",".sh") - except Exception, e: - print traceback.print_exc() + except Exception as e: + print((traceback.print_exc())) #-------------------# def runCARMELCND(self): @@ -1001,10 +1038,6 @@ class JDCEditor(Ui_baseWidget,QWidget): f.close() commande="xterm -e sh "+nomFichier +"\n" os.system(commande) - #try : - # self._viewTextExecute( textePython,"carmel_run",".sh") - #except Exception, e: - # print traceback.print_exc() #-------------------# def runCarmelCS(self): @@ -1012,13 +1045,13 @@ class JDCEditor(Ui_baseWidget,QWidget): try : commande="runSession pilotyacsCS.py" os.system(commande) - except Exception, e: - print traceback.print_exc() + except Exception as e: + print((traceback.print_exc())) #-----------------------------------------------------# def determineNomFichier(self,path,extension): #-----------------------------------------------------# - if DictExtensions.has_key(self.appli.code) : + if self.appli.code in DictExtensions: chaine1="JDC (*"+DictExtensions[self.appli.code]+");;" extensions= tr(chaine1+ "All Files (*)") else : @@ -1032,26 +1065,19 @@ class JDCEditor(Ui_baseWidget,QWidget): extensions,None, QFileDialog.DontConfirmOverwrite) if fn == None : return (0, None) - if monEnvQT5 : fn=fn[0] + fn=fn[0] if fn=='': return (0, None) ext = QFileInfo(fn).suffix() if ext == '': fn+=extension if QFileInfo(fn).exists(): - if monEnvQT5 : - msgBox = QMessageBox(self) - msgBox.setWindowTitle(tr("Sauvegarde du Fichier")) - msgBox.setText(tr("Le fichier %s existe deja.", unicode(fn))) - msgBox.addButton(tr("&Ecraser"),0) - msgBox.addButton(tr("&Abandonner"),1) - abort=msgBox.exec_() - else : - abort = QMessageBox.warning(self, - tr("Sauvegarde du Fichier"), - tr("Le fichier %s existe deja.",str(fn)), - tr("&Ecraser"), - tr("&Abandonner")) + msgBox = QMessageBox(self) + msgBox.setWindowTitle(tr("Sauvegarde du Fichier")) + msgBox.setText(tr("Le fichier %s existe deja.", six.text_type(fn))) + msgBox.addButton(tr("&Ecraser"),0) + msgBox.addButton(tr("&Abandonner"),1) + abort=msgBox.exec_() if abort == 1 : return (0, "") return (1,fn) @@ -1092,19 +1118,13 @@ class JDCEditor(Ui_baseWidget,QWidget): for b in c.children(): if isinstance(b,QPushButton): avant=b.text() - if (not monEnvQT5) and avant.toLatin1()=="&Open": b.setText("Save") - if monEnvQT5 and avant=="&Open": b.setText("Save") - if monEnvQT5 : - mesFiltres= "input Map (*.input);;All Files (*)" - else : - mesFiltres=QStringList() - mesFiltres << "input Map (*.input)" << "All Files (*)" + if avant=="&Open": b.setText("Save") + mesFiltres= "input Map (*.input);;All Files (*)" monDialog.setNameFilters(mesFiltres) if monNomFichier!="" : monDialog.selectFile(monNomFichier) BOk=monDialog.exec_() if BOk==0: return - if monEnvQT5 : fn=str(monDialog.selectedFiles()[0]) - else : fn=str(monDialog.selectedFiles()[0].toLatin1()) + fn=str(monDialog.selectedFiles()[0]) if fn == "" or fn == None : return if not fn.endswith(".input"): fn += ".input" @@ -1123,36 +1143,8 @@ class JDCEditor(Ui_baseWidget,QWidget): #-----------------# def saveRunPSEN(self): #-----------------# - print "saveRunPSEN" + #print ("saveRunPSEN") self.saveFile() - return - if not(self.jdc.isvalid()): - QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), - tr("Un JdC valide est necessaire pour creer un .input") - ) - return - - #print generator.plugins.has_key(self.format) - if generator.plugins.has_key(self.format): - # Le generateur existe on l'utilise - self.generator=generator.plugins[self.format]() - try : - self.generator.gener(self.jdc) - self.generator.writeDefault('') - except ValueError,e: - QMessageBox.critical(self, tr("Erreur a la generation"),str(e)) - if not self.generator.cr.estvide(): - self.affiche_infos(tr("Erreur a la generation"),Qt.red) - QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC")) - return "" - else: - # Il n'existe pas c'est une erreur - self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red) - QMessageBox.critical( self, "Format non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format)) - return "" - #print "HELLO" - - #-----------------------------------------# @@ -1166,7 +1158,7 @@ class JDCEditor(Ui_baseWidget,QWidget): #-----------------------------------------# dicoCourant={} format = self.appliEficas.format_fichier - if generator.plugins.has_key(format): + if format in generator.plugins: # Le generateur existe on l'utilise self.generator=generator.plugins[format]() jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) @@ -1188,6 +1180,36 @@ 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(six.text_type(fn)) + self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] + fn = six.text_type(QDir.toNativeSeparators(fn)) + + self.fichier = os.path.splitext(fn)[0]+extension + + 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"): #-----------------------------------------------------------------# @@ -1203,8 +1225,7 @@ 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) : + if self.appli.code in DictExtensions : extension=DictExtensions[self.appli.code] else : extension='.comm' @@ -1218,9 +1239,9 @@ class JDCEditor(Ui_baseWidget,QWidget): if fn == None : return (0, None) if fn== '' : return (0, None) - ulfile = os.path.abspath(unicode(fn)) + ulfile = os.path.abspath(six.text_type(fn)) self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] - fn = unicode(QDir.toNativeSeparators(fn)) + fn = six.text_type(QDir.toNativeSeparators(fn)) newName = fn @@ -1238,7 +1259,7 @@ class JDCEditor(Ui_baseWidget,QWidget): if self.jdc.isvalid() != 0 and hasattr(self.generator, "writeDefault"): self.generator.writeDefault(fn) - if self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"): + elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"): self.generator.writeDefault(fn) if self.salome : @@ -1301,9 +1322,9 @@ class JDCEditor(Ui_baseWidget,QWidget): # ce retour est impose par le get_file d'I_JDC if fn== '' : return None," " if not fn : return (0, " ") - if monEnvQT5 : fn=fn[0] + fn=fn[0] - ulfile = os.path.abspath(unicode(fn)) + ulfile = os.path.abspath(six.text_type(fn)) self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] # On utilise le convertisseur defini par format_fichier @@ -1361,7 +1382,7 @@ class JDCEditor(Ui_baseWidget,QWidget): ouChercher=etape for mot in listeAvant : ouChercher=ouChercher.get_child(mot,restreint="oui") - if ouChercher ==None : print 'SOUCI'; return + if ouChercher ==None : print ('SOUCI'); return monMC=ouChercher.get_child(MCFils,restreint="oui") if monMC== None : monMC= ouChercher.addentite(MCFils) monMC.definition.into=valeurs @@ -1500,7 +1521,8 @@ class JDCEditor(Ui_baseWidget,QWidget): def _newTELEMAC(self): #---------------------------# #texte="INITIALIZATION();BOUNDARY_CONDITIONS();GENERAL_PARAMETERS();PHYSICAL_PARAMETERS();NUMERICAL_PARAMETERS();" - texte="" + texte="COMPUTATION_ENVIRONMENT();HYDRO();GENERAL_PARAMETERS();NUMERICAL_PARAMETERS()" + #texte="TRACERS();" return texte #---------------------------# @@ -1513,8 +1535,8 @@ class JDCEditor(Ui_baseWidget,QWidget): #---------------------------# def _newPSEN_N1(self): #---------------------------# - #texte="CASE_SELECTION() ; CONTINGENCY_OPTIONS() ; OUTPUT_OPTIONS() ; " - texte="CASE_SELECTION() ; N_PROCESSING_OPTIONS() ; CONTINGENCY_OPTIONS() ; CONTINGENCY_SELECTION(); CONTINGENCY_PROCESSING(); " + texte="CASE_SELECTION();N_PROCESSING_OPTIONS();CONTINGENCY_OPTIONS();CONTINGENCY_SELECTION();\nCONTINGENCY_PROCESSING(); " + texte="CONTINGENCY_SELECTION();\nCONTINGENCY_PROCESSING(); " return texte #---------------------------# @@ -1537,11 +1559,11 @@ class JDCEditor(Ui_baseWidget,QWidget): QSfichier = QFileDialog.getOpenFileName(self.appliEficas, caption='Fichier Med', filter=extensions) - if monEnvQT5 : QSfichier=QSfichier[0] + QSfichier=QSfichier[0] self.fichierMED=QSfichier from acquiertGroupes import getGroupes erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED) - if erreur != "" : print "a traiter" + if erreur != "" : print ("a traiter") texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n" texteSources="" texteCond="" @@ -1570,7 +1592,7 @@ class JDCEditor(Ui_baseWidget,QWidget): self.fichierMED=str(QSfichier) from acquiertGroupes import getGroupes erreur,self.listeGroupes,self.nomMaillage=getGroupes(self.fichierMED) - if erreur != "" : print "a traiter" + if erreur != "" : print ("a traiter") #----------------------------- def BoutonSalomePressed(self): @@ -1580,61 +1602,85 @@ class JDCEditor(Ui_baseWidget,QWidget): self.nomMaillage="A_partir_de_SMESH" self.openfile.close() - #------------------------------------- - def saveSplitterSizes(self,event=None): - #------------------------------------ - if self.inhibeSplitter : return - if not hasattr(self,'splitter') : return - if self.splitterSizes[2] != 0 : self.oldSizeWidgetOptionnel = self.splitterSizes[2] - #print self.splitterSizes - #print self.splitter.sizes() - # PNPNPNPN parfoir self.splitter.sizes() a une longueur de 4... - nbAGarder=len(self.splitter.sizes()) - if nbAGarder > 3 : nbAGarder=3 - for i in range(nbAGarder): - self.splitterSizes[i] = self.splitter.sizes()[i] - self.splitter.widget(i).resizeEvent=self.saveSplitterSizes - #print self.splitter.sizes() + + #----------------------------------------- + def initSplitterSizes(self, nbWidget=3): + #----------------------------------------- + #print ("je passe ds initSplitterSizes", nbWidget) + + if self.code in [ 'Adao', 'ADAO', ] : self.splitterSizes3=[1,1550,150] + elif self.code in [ 'MAP'] : self.splitterSizes3=[700,300] + else : self.splitterSizes3=[150,1000,300] + + if self.code in [ 'Adao', 'ADAO', ] : self.splitterSizes2=[5,1500] + else : self.splitterSizes2=[300,1000] + #----------------------------------------- - def restoreSplitterSizes(self,nbWigdet=3): + def restoreSplitterSizes(self,nbWidget=3): #---------------------------------------- - self.inhibeSplitter = 1 - self.i+=1 + + #traceback.print_stack() + #print ("je passe ds restoreSplitterSizes") if not(hasattr(self,'splitter')) : return - newSizes=self.splitterSizes[:nbWigdet] + if nbWidget==2 : newSizes=self.splitterSizes2 + if nbWidget==3 : newSizes=self.splitterSizes3 + #self.inhibeSplitter = 1 self.splitter.setSizes(newSizes) - self.inhibeSplitter = 0 + #self.inhibeSplitter = 0 + QApplication.processEvents() + # seule la fentetre du milieu est necessaire + self.splitter.widget(1).resizeEvent=self.saveSplitterSizes + #----------------------------------------- + def saveSplitterSizes(self,event): + #----------------------------------------- + #print ("je passe ds saveSplitterSizes") + if self.inhibeSplitter : return + if self.widgetOptionnel == None : self.splitterSizes2 = self.splitter.sizes()[0:2] + else : self.splitterSizes3 = self.splitter.sizes()[0:3] + #------------------------ def fermeOptionnel(self): #------------------------ if self.widgetOptionnel == None : return self.inhibeSplitter=1 - self.splitterSizes[1] = self.splitterSizes[1] + self.splitterSizes[2] - if self.splitterSizes[2]!=0 : self.oldSizeWidgetOptionnel = self.splitterSizes[2] - self.splitterSizes[2]=0 - self.widgetOptionnel.setParent(None) self.widgetOptionnel.close() self.widgetOptionnel.deleteLater() self.widgetOptionnel=None self.inhibeSplitter=0 self.restoreSplitterSizes(2) - + #------------------------ def ajoutOptionnel(self): #------------------------ - #print "ajoutOptionnel" - #print self.splitterSizes - self.splitterSizes[2] = self.oldSizeWidgetOptionnel - self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2] - self.inhibeSplitter=0 + #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel) + #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres + #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2] + self.restoreSplitterSizes(3) + #------------------------ + def fermeArbre(self): + #------------------------ + #print (self.widgetTree) + self.oldWidgetTree=self.widgetTree + self.widgetTree.hide() + #self.widgetTree=None + + #------------------------ + def ouvreArbre(self): + #------------------------ + #print ('je passe la') + #print (self.widgetTree) + #self.widgetTree=self.oldWidgetTree + self.widgetTree.show() + #self.restoreSplitterSizes(3) + #----------------------------- def getTreeIndex(self,noeud): #----------------------------