X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Feditor.py;h=ed534c90ba357b6457e7fbfaff9e8e7ad7cdb3be;hb=9bf98fc1cb51814c31679120598dc309e0802e31;hp=6755841c299b3ffb0e6da2f9eb884b3de16636dd;hpb=8fdd238dcae0e3fdcc72a5782b10c1dc62418d56;p=tools%2Feficas.git
diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py
index 6755841c..ed534c90 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,10 +47,10 @@ 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", "TELEMAC" : '.comm'}
@@ -78,6 +83,7 @@ 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
@@ -87,6 +93,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
# ces attributs sont mis a jour par definitCode appelee par newEditor
self.code = self.appliEficas.CONFIGURATION.code
+ self.initSplitterSizes()
#self.afficheListesPliees=False
self.afficheListesPliees=True
@@ -98,6 +105,10 @@ class JDCEditor(Ui_baseWidget,QWidget):
self.closeFrameRechercheCommande=self.appliEficas.CONFIGURATION.closeFrameRechercheCommande
self.closeArbre=self.appliEficas.CONFIGURATION.closeArbre
self.affiche=self.appliEficas.CONFIGURATION.affiche
+ self.afficheOptionnelVide=self.appliEficas.CONFIGURATION.afficheOptionnelVide
+ self.nombreDeBoutonParLigne = self.appliEficas.CONFIGURATION.nombreDeBoutonParLigne
+ self.dicoImages = self.appliEficas.CONFIGURATION.dicoImages
+ self.simpleClic = self.appliEficas.CONFIGURATION.simpleClic
#self.taille = self.appliEficas.taille
#if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
@@ -105,14 +116,11 @@ class JDCEditor(Ui_baseWidget,QWidget):
if self.code in ['MAP',]:
self.widgetTree.close()
self.widgetTree=None
- if self.closeArbre:
- self.widgetTree.close()
- self.widgetTree=None
-
-
+ 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
@@ -130,6 +138,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
self.liste_simp_reel=[]
self.ihm="QT"
self.dicoNouveauxMC={}
+ self.dicoNouveauxFact={}
nameConf='configuration_'+self.code
configuration=__import__(nameConf)
@@ -234,6 +243,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
#-------------------# Pour execution avec output et error dans le bash
def runPSEN(self):
#-------------------#
+
#if self.modified or self.fichier==None : self.saveFile()
self.saveFile()
@@ -257,7 +267,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
if not(self.jdc.isvalid()):
QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
- 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
@@ -265,7 +275,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
###to delete
#fileDico = r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
fileDico = os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
- f = open( str(fileDico), 'wb')
+ f = open( str(fileDico), 'w')
f.write("Dico =" + str(dico) )
f.close()
###
@@ -286,13 +296,13 @@ class JDCEditor(Ui_baseWidget,QWidget):
sys.path.append(path1)
- 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.get_Dico() #generator.Dico
- for k in dico['CONTINGENCY_PROCESSING'].keys():
+ 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('___',' ')
@@ -302,7 +312,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
###to delete
fileDico = os.path.join(path1, 'dicoN1_process.py')
- f = open( str(fileDico), 'wb')
+ f = open( str(fileDico), 'w')
f.write("Dico =" + str(dico) )
f.close()
###
@@ -310,6 +320,28 @@ class JDCEditor(Ui_baseWidget,QWidget):
#return self.get_Dico()
+ #-------------------# Pour execution avec output et error dans le bash
+ def process_VP(self):
+ #-------------------#
+ if 'dicoImbrique' in generator.plugins:
+ self.generator=generator.plugins['dicoImbrique']()
+ jdc_formate=self.generator.gener(self.jdc)
+ dico=self.get_Dico() #generator.Dico
+ return dico
+
+
+ #--------------------------------#
+ def ajoutCommentaire(self):
+ #--------------------------------#
+ if self.tree.selectedItems()==[] :
+ QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
+ return
+ noeudAvantCommentaire=self.tree.selectedItems()[0]
+ if noeudAvantCommentaire ==self.tree.racine :
+ self.tree.racine.append_child("COMMENTAIRE",pos=0)
+ return
+ noeudAvantCommentaire.addComment(True)
+
#--------------------------------#
@@ -386,7 +418,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
@@ -394,7 +426,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]()
@@ -446,7 +478,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)
@@ -488,12 +520,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()
@@ -506,11 +534,11 @@ class JDCEditor(Ui_baseWidget,QWidget):
def readFromStdErr(self):
a=self.monExe.readAllStandardError()
- self.w.view.append(str(a.data(),len(a)))
+ self.w.view.append(str(a.data()))
- def readFromStdErr(self) :
+ def readFromStdOut(self) :
a=self.monExe.readAllStandardOutput()
- self.w.view.append(str(a.data(),len(a)))
+ self.w.view.append(str(a.data()))
def readFromStdErrQT4(self):
a=self.monExe.readAllStandardError()
@@ -520,7 +548,14 @@ class JDCEditor(Ui_baseWidget,QWidget):
a=self.monExe.readAllStandardOutput()
self.w.view.append(QString.fromUtf8(a.data(),len(a))) ;
-
+ #-----------------------#
+ def generDico(self):
+ #-----------------------#
+ if 'dico' in generator.plugins:
+ self.generator=generator.plugins['dico']()
+ jdc_formate=self.generator.gener(self.jdc)
+ dico=self.generator.Dico
+ return dico
#-----------------------#
def gestionParam(self):
@@ -531,6 +566,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
#-----------------------#
def viewJdcSource(self):
#-----------------------#
+ if self.fichier == None : return
f=open(self.fichier,'r')
texteSource=f.read()
f.close()
@@ -545,7 +581,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")
@@ -626,7 +662,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()
@@ -634,7 +670,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
#--------------------------------#
def handleRechercherDsCatalogue(self):
#-----------------------------#
- from monRechercheCatalogue import DRechercheCatalogue
+ from .monRechercheCatalogue import DRechercheCatalogue
monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
monRechercheDialg.show()
@@ -700,34 +736,23 @@ class JDCEditor(Ui_baseWidget,QWidget):
tr("Copie impossible"),
tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
return
+ noeudOuColler=self.node_selected[0]
if len(self.QWParent.noeud_a_editer)!=1:
- self.handleEditPasteMultiple()
+ #self.handleEditPasteMultiple()
+ QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
return
- noeudOuColler=self.node_selected[0]
- pos='after'
- if noeudOuColler == self.tree.racine:
- indexNoeudOuColler=0
- pos='before'
- else :
- 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=self.getTreeIndex(noeudACopier)
- except :
- QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
- return
+ noeudACopier=self.QWParent.noeud_a_editer[0]
if (self.QWParent.edit != "couper"):
+ #print (noeudOuColler.item.parent.get_child(noeudOuColler.item.nom))
try:
if noeudOuColler == self.tree.racine :
child=noeudOuColler.doPastePremier(noeudACopier)
else :
- child=noeudACopier.doPaste(noeudOuColler,pos)
+ child=noeudACopier.doPaste(noeudOuColler,'after')
+
if child==None or child==0:
QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
self.message = ''
@@ -753,6 +778,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
# si possible on renomme l objet comme le noeud couper
if (self.QWParent.edit == "couper"):
+ print ('je pass la')
if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
@@ -872,7 +898,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)
@@ -887,7 +913,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
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
@@ -902,16 +928,19 @@ class JDCEditor(Ui_baseWidget,QWidget):
#-----------------------------------------------------------#
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
+ if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
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"))
@@ -927,7 +956,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
@@ -943,13 +972,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):
@@ -989,7 +1018,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
#except :
# pass
except Exception as e:
- print (traceback.print_exc())
+ print((traceback.print_exc()))
#-------------------#
def runZCRACKS(self):
@@ -1010,7 +1039,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
textePython=(commande + self.fichierZcracksInput)
self._viewTextExecute( textePython,"run_zcracks",".sh")
except Exception as e:
- print (traceback.print_exc())
+ print((traceback.print_exc()))
#-------------------#
def runCARMELCND(self):
@@ -1041,12 +1070,12 @@ class JDCEditor(Ui_baseWidget,QWidget):
commande="runSession pilotyacsCS.py"
os.system(commande)
except Exception as e:
- print (traceback.print_exc())
+ 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 :
@@ -1060,26 +1089,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)
@@ -1120,19 +1142,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"
@@ -1166,7 +1182,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 +1204,14 @@ class JDCEditor(Ui_baseWidget,QWidget):
#else :
pass
+ #-----------------------------------------------------------------#
+ def saveFileLegerAs(self, fileName = None) :
+ #-----------------------------------------------------------------#
+ if fileName != None :
+ self.fichier = fileName
+ return self.saveFileLeger()
+ return self.saveFileLeger()
+
#-----------------------------------------------------------------#
def saveFileLeger(self, path = None, saveas= 0,formatLigne="beautifie"):
#-----------------------------------------------------------------#
@@ -1202,9 +1226,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))
self.fichier = os.path.splitext(fn)[0]+extension
@@ -1233,7 +1257,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
if not self.modified and not saveas:
return (0, None) # do nothing if text wasn't changed
- if DictExtensions.has_key(self.appli.code) :
+ if self.appli.code in DictExtensions :
extension=DictExtensions[self.appli.code]
else :
extension='.comm'
@@ -1247,9 +1271,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
@@ -1330,9 +1354,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
@@ -1345,24 +1369,37 @@ class JDCEditor(Ui_baseWidget,QWidget):
jdcText = ''
return ulfile, jdcText
- #-------------------------------#
+ #-----------------------------------#
def updateJdc(self, itemApres,texte):
- #--------------------------------#
+ #------------------------------------#
+ # ajoute une etape de JdC a partir d un texte
monItem=itemApres
etape=monItem.item.object
-
CONTEXT.set_current_step(etape)
etape.build_includeInclude(texte)
self.tree.racine.build_children()
+ #-----------------------------------#
+ def updateJdcEtape(self, itemApres,texte):
+ #------------------------------------#
+ # ajoute une etape de JdC a partir d un texte
+ monItem=itemApres
+ etape=monItem.item.object
+ CONTEXT.set_current_step(etape)
+ etape.build_includeEtape(texte)
+ self.tree.racine.build_children()
+
+
#-------------------------------------#
def deleteEtape(self,etape):
#-------------------------------------#
+ # dans le JDC
self.jdc.suppentite(etape)
#-------------------------------------#
def deleteMC(self,etape,MCFils,listeAvant=()):
#-------------------------------------#
+ # dans le JDC
ouChercher=etape
for mot in listeAvant :
ouChercher=ouChercher.get_child(mot,restreint="oui")
@@ -1374,6 +1411,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
#-------------------------------------#
def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
#-------------------------------------#
+ # dans le JDC
ouChercher=etape
for mot in listeAvant :
ouChercher=ouChercher.get_child(mot,restreint="oui")
@@ -1384,36 +1422,157 @@ class JDCEditor(Ui_baseWidget,QWidget):
monMC.state='changed'
monMC.isvalid()
+ #----------------------------------------------#
+ def ajoutMCFact(self,etape,MCFils,listeAvant=()):
+ #----------------------------------------------#
+ # dans le JDC
+ print ('ajoutMCFact')
+ ouChercher=etape
+ print (ouChercher)
+ for mot in listeAvant :
+ ouChercher=ouChercher.get_child(mot,restreint="oui")
+ print (mot)
+ print (ouChercher)
+ monMC=etape.get_child(ouChercher,restreint="oui")
+ if monMC== None : monMC= ouChercher.addentite(MCFils)
+ monMC.isvalid()
+
+ #-------------------------------------#
+ def getValeur(self,nomEtape,MCFils,listeAvant=()):
+ #-------------------------------------#
+ # dans le JDC
+
+ ouChercher=None
+ for e in self.jdc.etapes:
+ if e.nom == nomEtape : ouChercher=e; break
+ if ouChercher==None : return None
+ for mot in listeAvant :
+ ouChercher=ouChercher.get_child(mot,restreint="oui")
+ #print (mot, ouChercher)
+ if ouChercher==None : return None
+ monMC=ouChercher.get_child(MCFils,restreint="oui")
+ if monMC== None : return None
+ return monMC.valeur
+
+ #-----------------------------------------------------------#
+ def setValeur(self,nomEtape,MCFils,valeur,listeAvant=()):
+ #--------------------------------------------------------#
+ # dans le JDC
+
+ ouChercher=None
+ for e in self.jdc.etapes:
+ if e.nom == nomEtape : ouChercher=e; break
+ if ouChercher==None : return None
+ for mot in listeAvant :
+ ouChercher=ouChercher.get_child(mot,restreint="oui")
+ #print (mot, ouChercher)
+ if ouChercher==None : return None
+ monMC=ouChercher.get_child(MCFils,restreint="oui")
+ monMC.set_valeur(valeur)
+ monMC.isvalid()
+
#-----------------------------------------------------------#
def changeIntoMC(self,etape,MCFils,valeurs, listeAvant=()):
#-----------------------------------------------------------#
+ # dans le JDC
ouChercher=etape
+ if isinstance (etape, str):
+ ouChercher=None
+ for e in self.jdc.etapes:
+ if e.nom == etape : ouChercher=e; break
+ if ouChercher==None : return
+
for mot in listeAvant :
ouChercher=ouChercher.get_child(mot,restreint="oui")
- if ouChercher ==None : print ('SOUCI'); return
+ if ouChercher==None : return
monMC=ouChercher.get_child(MCFils,restreint="oui")
if monMC== None : monMC= ouChercher.addentite(MCFils)
+
monMC.definition.into=valeurs
+ from Noyau.N_VALIDATOR import IntoProtocol
+ monMC.definition.intoProto = IntoProtocol("into", into=monMC.definition.into, val_min=monMC.definition.val_min, val_max=monMC.definition.val_max)
monMC.state='changed'
monMC.isvalid()
+ #-------------------------------------------------------------------#
+ def reCalculeValiditeMCApresChgtInto(self,nomEtape,MCFils,listeAvant=()):
+ #-------------------------------------------------------------------#
+ # dans le JDC
+ for e in self.jdc.etapes:
+ if e.nom == nomEtape : ouChercher=e; break
+
+ for mot in listeAvant :
+ try :
+ ouChercher=ouChercher.get_child(mot,restreint="oui")
+ # Le mot clef n est pas la
+ except : return 0
+ try :
+ monMC=ouChercher.get_child(MCFils,restreint="oui")
+ # Le mot clef n est pas la
+ except : return 0
+ if monMC == None : return 0
+
+ if hasattr(monMC.definition,'into') :
+ if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
+ else : maListeDeValeur=monMC.definition.into
+ else :
+ return 0
+
+ monMC.state='changed'
+ return 1
+
#-------------------------------------#
- def changeIntoDefMC(self,etape,listeMC,valeurs):
+ def changeDefautDefMC(self,nomEtape,listeMC,valeurs):
#-------------------------------------#
- definitionEtape=getattr(self.jdc.cata[0],etape)
+ # dans le MDD
+
+ #if isinstance (etape, str):
+ # for e in self.jdc.etapes:
+ # if e.nom == etape : etape=e; break
+ #if etape == None : return
+ definitionEtape=getattr(self.jdc.cata[0],nomEtape)
ouChercher=definitionEtape
if len(listeMC) > 1 :
+
for mc in listeMC[0:-1]:
mcfact=ouChercher.entites[mc]
ouChercher=mcfact
mcAccas=ouChercher.entites[listeMC[-1]]
+ mcAccas.defaut=valeurs
+ return 1
+
+ #------------------------------------------------#
+ def changeIntoDefMC(self,nomEtape,listeMC,valeurs):
+ #------------------------------------------------#
+ # dans le MDD
+ definitionEtape=getattr(self.jdc.cata[0],nomEtape)
+ ouChercher=definitionEtape
+
+ if len(listeMC) > 1 :
+ for mc in listeMC[0:-1]:
+ mcfact=ouChercher.entites[mc]
+ ouChercher=mcfact
+ mcAccas=ouChercher.entites[listeMC[-1]]
+
+ if hasattr(mcAccas,'into') : oldValeurs=mcAccas.into
+ else : oldValeurs=None
+ if oldValeurs==valeurs : return 0
+
mcAccas.into=valeurs
+ from Noyau.N_VALIDATOR import IntoProtocol
+ mcAccas.intoProto = IntoProtocol("into", into=valeurs, val_min=mcAccas.val_min, val_max=mcAccas.val_max)
+ return 1
#-------------------------------------------------------------#
def deleteDefinitionMC(self,etape,listeAvant,nomDuMC):
#-------------------------------------------------------------#
+ # dans le MDD
#print 'in deleteDefinitionMC', etape,listeAvant,nomDuMC
+ if isinstance (etape, str):
+ for e in self.jdc.etapes:
+ if e.nom == etape : etape=e; break
+ if etape == None : return
definitionEtape=getattr(self.jdc.cata[0],etape)
ouChercher=definitionEtape
for k in listeAvant :
@@ -1425,9 +1584,10 @@ class JDCEditor(Ui_baseWidget,QWidget):
#-------------------------------------------------------------#
- def ajoutDefinitionMC(self,etape,listeAvant,nomDuMC,typ,**args):
+ def ajoutDefinitionMC(self,nomEtape,listeAvant,nomDuMC,typ,**args):
#-------------------------------------------------------------#
- definitionEtape=getattr(self.jdc.cata[0],etape)
+ # dans le MDD
+ definitionEtape=getattr(self.jdc.cata[0],nomEtape)
ouChercher=definitionEtape
for k in listeAvant :
ouChercher=ouChercher.entites[k]
@@ -1435,17 +1595,62 @@ class JDCEditor(Ui_baseWidget,QWidget):
Nouveau=A_SIMP.SIMP(typ,**args)
Nouveau.pere=ouChercher
Nouveau.nom=nomDuMC
- Nouveau.ordre_mc=[]
+ #Nouveau.ordre_mc=[]
ouChercher.entites[nomDuMC]=Nouveau
ouChercher.ordre_mc.append(nomDuMC)
- self.dicoNouveauxMC[nomDuMC]=('ajoutDefinitionMC',etape,listeAvant,nomDuMC,typ,args)
+ self.dicoNouveauxMC[nomDuMC]=('ajoutDefinitionMC',nomEtape,listeAvant,nomDuMC,typ,args)
+ #print self.dicoNouveauxMC
+
+ #---------------------------------------------------------------------#
+ def ajoutDefinitionMCFact(self,nomEtape,listeAvant,nomDuMC,listeMC,**args):
+ #---------------------------------------------------------------------#
+ # dans le MDD
+ print ('ajoutDefinitionMCFact', nomDuMC)
+ definitionEtape=getattr(self.jdc.cata[0],nomEtape)
+ ouChercher=definitionEtape
+ for k in listeAvant :
+ ouChercher=ouChercher.entites[k]
+ from Accas import A_SIMP
+ for mc in listeMC :
+ nomMC=mc[0]
+ typMC=mc[1]
+ argsMC=mc[2]
+ nouveauMC=A_SIMP.SIMP(typMC,**argsMC)
+ nouveauMC.nom=nomMC
+ args[nomMC]=nouveauMC
+ from Accas import A_FACT
+ nouveauFact=A_FACT.FACT(**args)
+ nouveauFact.pere=ouChercher
+ nouveauFact.nom=nomDuMC
+ from Editeur.autre_analyse_cata import traite_entite
+ traite_entite(nouveauFact,[])
+ ouChercher.entites[nomDuMC]=nouveauFact
+ ouChercher.ordre_mc.append(nomDuMC)
+ self.dicoNouveauxFact[nomDuMC]=('ajoutDefinitionMC',nomEtape,listeAvant,nomDuMC,listeMC,args)
#print self.dicoNouveauxMC
#----------------------------------------------------#
- def changeIntoMCandSet(self,etape,MCFils,into,valeurs):
+
+ #----------------------------------------------------#
+ def changeIntoMCandSet(self,etape,listeMC,into,valeurs):
#----------------------------------------------------#
- monMC=etape.get_child(MCFils,restreint="oui")
+ # dans le MDD et le JDC
+
+ self.changeIntoDefMC(etape,listeMC,into)
+
+ if isinstance (etape, str):
+ for e in self.jdc.etapes:
+ if e.nom == etape : etape=e; break
+ if etape == None : return
+
+ ouChercher = etape
+ for mot in listeMC[:-1] :
+ ouChercher=ouChercher.get_child(mot,restreint="oui")
+ if ouChercher==None : return
+ MCFils=listeMC[-1]
+ monMC=ouChercher.get_child(MCFils,restreint="oui")
if monMC== None : monMC= etape.addentite(MCFils)
+
monMC.definition.into=into
monMC.valeur=valeurs
monMC.val=valeurs
@@ -1567,7 +1772,7 @@ 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)
@@ -1614,37 +1819,40 @@ class JDCEditor(Ui_baseWidget,QWidget):
#-----------------------------------------
def initSplitterSizes(self, nbWidget=3):
#-----------------------------------------
- #print "je passe ds initSplitterSizes"
- if nbWidget==3 :
- if self.code in [ 'Adao', 'ADAO', ] : self.splitterSizes=[1,1550,150]
- elif self.code in [ 'MAP'] : self.splitterSizes=[700,300]
- else : self.splitterSizes=[150,800,500]
- self.oldSizeWidgetOptionnel = 30
- if nbWidget==2 :
- if self.code in [ 'Adao', 'ADAO', ] : self.splitterSizes=[5,1500]
- else : self.splitterSizes=[300,1000]
- self.oldSizeWidgetOptionnel = 30
- self.splitter.setSizes(self.splitterSizes)
+ #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,nbWidget=3):
#----------------------------------------
- #self.inhibeSplitter = 1
- #print 'ds restoreSplitterSizes'
- #print self.splitterSizes
+ #traceback.print_stack()
+ #print ("je passe ds restoreSplitterSizes")
if not(hasattr(self,'splitter')) : return
- if nbWidget==2 and len(self.splitterSizes) == 3 :
- self.splitterSizes[1]+=self.splitterSizes[2]
- newSizes=self.splitterSizes[:nbWidget]
+ if nbWidget==2 : newSizes=self.splitterSizes2
+ if nbWidget==3 : newSizes=self.splitterSizes3
+ #self.inhibeSplitter = 1
self.splitter.setSizes(newSizes)
+ #self.inhibeSplitter = 0
QApplication.processEvents()
# seule la fentetre du milieu est necessaire
self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
+ #-----------------------------------------
def saveSplitterSizes(self,event):
- self.splitterSizes= self.splitter.sizes()
+ #-----------------------------------------
+ #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):
@@ -1652,27 +1860,40 @@ class JDCEditor(Ui_baseWidget,QWidget):
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):
#------------------------
- if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
- else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
+ #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):
#----------------------------