e.updateContext(context)
def analyse(self):
- if self.editor.format == 'xml' :
+ try :
+ if self.editor.format == 'xml' :
# il ne faut pas le faire quand le jeu de donnees est vide
self.setCurrentContext()
self.analyseFromXML()
#print ('stop demande'); exit()
#self.execCompileFromXML()
- else :
+ else :
+ self.compile()
+ self.execCompile()
+ if not self.cr.estvide():return
+ self.activeEtapes()
+ except:
self.compile()
self.execCompile()
if not self.cr.estvide():return
#print ("getContexteJdc",self,self.nom, text)
# On recupere l'etape courante
step=CONTEXT.getCurrentStep()
+ self.text_included_converted=0
#try:
if 1 :
# on essaie de creer un objet JDC auxiliaire avec un contexte initial
jdc_pere=self.jdc,etape_include=self,
prefix_include=prefix_include,
recorded_units=self.recorded_units,
- old_recorded_units=old_recorded_units,**args)
+ old_recorded_units=old_recorded_units)
+ #old_recorded_units=old_recorded_units,**args)
j.analyse()
+ if not j.cr.estvide(): self.text_included_converted=0
+ else : self.text_included_converted=1
+ self.text_included_error=str(j.cr)
# On recupere les etapes internes (pour validation)
self.etapes=j.etapes
self.jdc_aux=j
# ajoute une etape de JdC a partir d un texte
CONTEXT.setCurrentStep(etape)
etape.buildIncludeEtape(texte)
+ if not (etape.text_included_converted) :
+ QMessageBox.information( self,
+ tr("Impossible d importer le texte"),
+ etape.text_included_error)
+
self.tree.racine.buildChildren()
#-----------------------------------#
import traceback
-import six
-from six.moves import range
from PyQt5.QtWidgets import QLineEdit, QLabel, QFileDialog
from PyQt5.QtCore import QEvent, Qt, QTimer
from PyQt5.QtGui import QIcon, QPalette
fn=fn[0]
if fn == None : return
if fn == "" : return
- ulfile = os.path.abspath(six.text_type(fn))
+ ulfile = os.path.abspath(fn)
self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
from .monSelectVal import MonSelectVal
c.getPanel = self.getPanel
c.affichePanneau = self.affichePanneau
try :
- c.fenetre.RBDeplie.setCheckable(False)
+ c.fenetre.RBDeplie.setCheckable(False)
c.fenetre.RBDeplie.setEnabled(False)
c.fenetre.RBDeplie.setIcon(icon)
except :
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]
import os
from Extensions.i18n import tr
-import six
from PyQt5.QtWidgets import QFileDialog, QMessageBox
from PyQt5.QtCore import QFileInfo
extensions)
fichier=fichier[0]
if len(fichier) == 0: return None
- fichier = os.path.abspath(six.text_type(fichier))
- ulfile = os.path.abspath(six.text_type(fichier))
+ fichier = os.path.abspath(fichier)
+ ulfile = os.path.abspath(fichier)
self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
self.appliEficas.addToRecentList(fichier)
maPage=self.getEditor( fichier,units=units)
return
ok, newName = editor.saveFile()
if ok :
- fileName=os.path.basename(six.text_type(newName))
+ fileName=os.path.basename(newName)
self.myQtab.setTabText(index,fileName)
return ok
return
ok, newName = editor.sauveLigneFile()
if ok :
- fileName=os.path.basename(six.text_type(newName))
+ fileName=os.path.basename(newName)
self.myQtab.setTabText(index,fileName)
return ok
oldName=editor.fichier
ok,newName = editor.saveFileAs()
if ok :
- fileName=os.path.basename(six.text_type(newName))
+ fileName=os.path.basename(newName)
self.myQtab.setTabText(index,fileName)
if editor in self.doubles :
if oldName != newName :
#PNPNPNPN --> a affiner
if fichier is None:
self.untitledCount += 1
- self.myQtab.addTab(win, tr("Fichier non encore nomme " + self.appliEficas.readercata.versionCode, self.untitledCount))
+ self.myQtab.addTab(win, tr("Fichier non encore nomme") + str(self.untitledCount))
#self.myQtab.addTab(win, str(self.appliEficas.code))
else:
liste=fichier.split('/')
if res == 0:
(ok, newName) = editor.saveFile()
if ok:
- fileName=os.path.basename(six.text_type(newName))
+ fileName=os.path.basename(newName)
index=self.myQtab.currentIndex()
self.myQtab.setTabText(index,fileName)
return ok
listeParam = []
for p in lesArguments:
- print (p)
if hasattr(editor,p): listeParam.append(getattr(editor,p))
if p=="editor" : listeParam.append(editor)
if p=="etapeCourante" : listeParam.append(editor.getEtapeCourante())
- apply(laFonctionUtilisateur,listeParam)
+ laFonctionUtilisateur(*listeParam)
except NameError as e:
etype, value, tb = sys.exc_info()
l = traceback.extract_tb(tb)
- s = traceback.format_exception_only("Erreur de nom", e)[0][:-1]
+ s = traceback.format_exception_only(NameError,e)
msg = "erreur de syntaxe, %s ligne %d" % (s, l[-1][1])
if CONTEXT.debug:
traceback.print_exc()
pass
import re
import linecache
+import sys
from functools import partial
# Modules EFICAS
lineno = f.f_lineno # XXX Too bad if -O is used
# lineno = f_lineno(f) # Ne marche pas toujours
co = f.f_code
- filename = six.text_type(co.co_filename, getEncoding())
+ if sys.version_info >= (3,0) :
+ filename = co.co_filename
+ else :
+ filename = six.text_type(co.co_filename, getEncoding())
name = co.co_name
# pattern pour identifier le debut de la commande
pattern_oper = re.compile(regex1 % ope)