From 8a68525fe5d4970b62f017979990e9a31eabd09b Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 22 Sep 2015 17:26:46 +0200 Subject: [PATCH] le bug du bloc --- Editeur/Objecttreeitem.py | 1 + Ihm/CONNECTOR.py | 3 +- InterfaceQT4/browser.py | 79 ++---- InterfaceQT4/monChoixCommande.py | 8 +- InterfaceQT4/monWidgetCommande.py | 2 +- InterfaceQT4/monWidgetCommentaire.py | 1 + InterfaceQT4/monWidgetCreeParam.py | 11 +- InterfaceQT4/monWidgetOptionnel.py | 2 +- InterfaceQT4/monWidgetParam.py | 4 + InterfaceQT4/monWidgetPlusieursInto.py | 2 +- UiQT4/desWidgetOptionnel.ui | 69 +---- UiQT4/eficas_en.qm | Bin 78341 -> 82666 bytes UiQT4/eficas_fr.ts | 352 ++++++++++++++----------- convert/parseur_python.py | 28 +- generator/generator_TELEMAC.py | 1 - 15 files changed, 267 insertions(+), 296 deletions(-) diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 5658eeba..6ad5ae20 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -162,6 +162,7 @@ class ObjectTreeItem(TreeItem,Delegate): """ Connecte la fonction callable (avec arguments args) à l'item self sur le canal channel """ + #print self,channel,callable,args CONNECTOR.Connect(self._object,channel,callable,args) CONNECTOR.Connect(self.object, channel,callable,args) diff --git a/Ihm/CONNECTOR.py b/Ihm/CONNECTOR.py index 429501dd..07e6f055 100644 --- a/Ihm/CONNECTOR.py +++ b/Ihm/CONNECTOR.py @@ -106,8 +106,9 @@ class CONNECTOR: try: receivers = self.connections[id(object)][channel] except KeyError: + #print "ds except" return - ###print "Emit",object, channel, receivers + #print "Emit",object, channel, receivers # Attention : copie pour eviter les pbs lies aux deconnexion reconnexion # pendant l'execution des emit for rfunc, fargs in copy(receivers): diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index f35530fb..302719f2 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -52,7 +52,6 @@ class JDCTree( QTreeWidget,GereRegles ): self.tree = self self.appliEficas = self.editor.appliEficas self.childrenComplete=[] - self.childrenIssusDesBlocs=[] self.racine=self.item.itemNode(self,self.item) self.itemCourrant=None @@ -134,9 +133,10 @@ class JDCTree( QTreeWidget,GereRegles ): return item.deplieToutEtReaffiche() + def handleOnItem(self,item,int): #if (len(self.selectedIndexes())!=2): return - #print "je passe dans handleOnItem pour ", self.item.nom + #print "je passe dans handleOnItem pour ", item.item.nom, item, item.item self.inhibeExpand == True self.itemCourrant=item itemParent=item @@ -174,7 +174,6 @@ PARAMETERS = "PARAMETRE" class JDCNode(QTreeWidgetItem,GereRegles): def __init__( self, treeParent, item): #print "creation d'un noeud : ", item, " ",item.nom,"", treeParent, self - #print "creation d'un noeud : ", item.nom self.a=0 self.item = item self.vraiParent = treeParent @@ -182,7 +181,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.tree = self.treeParent.tree self.editor = self.treeParent.editor self.appliEficas = treeParent.appliEficas - self.treeParent.childrenIssusDesBlocs=[] + self.JESUISOFF=0 self.childrenComplete=[] from InterfaceQT4 import compocomm @@ -203,26 +202,20 @@ class JDCNode(QTreeWidgetItem,GereRegles): else : self.plie = False self.appartientAUnNoeudPlie = False - #print self.treeParent - ajoutAuParentduNoeud=0 from InterfaceQT4 import compobloc from InterfaceQT4 import compomclist + + ajoutAuParentduNoeud=0 + self.treeParent=treeParent while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : - #while (isinstance(self.treeParent,compobloc.Node)) : - self.treeParent=self.treeParent.treeParent - ajoutAuParentduNoeud=1 - if ajoutAuParentduNoeud : - treeParent.childrenComplete.append(self) - self.treeParent.childrenIssusDesBlocs.append(self) - while (isinstance(self.treeParent,compobloc.Node)) : self.treeParent=self.treeParent.treeParent - - #if isinstance(self,compobloc.Node) : + self.treeParent.childrenComplete.append(self) + self.treeParent=self.treeParent.vraiParent + self.treeParent.childrenComplete.append(self) if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) : QTreeWidgetItem.__init__(self,None,mesColonnes) else : QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes) - self.treeParent.childrenComplete.append(self) self.setToolTip(0,QString(self.item.get_fr())) self.setToolTip(1,QString(self.item.get_fr())) @@ -252,21 +245,24 @@ class JDCNode(QTreeWidgetItem,GereRegles): def build_children(self,posInsertion=10000): """ Construit la liste des enfants de self """ """ Se charge de remettre les noeuds Expanded dans le meme etat """ - #print "*********** build_children ",self.item, self.item.GetLabelText() + #print "*********** build_children ",self,self.item, self.item.nom listeExpanded=[] - for item in self.childrenComplete : - #print dir(item) - #if item.isExpanded(): + for enfant in self.childrenComplete : + #if enfant.isExpanded(): # if self.childrenComplete.index(item) < posInsertion : # listeExpanded.append(self.childrenComplete.index(item)) # print dir(item.item ) # else : # listeExpanded.append( self.childrenComplete.index(item) +1) - self.detruit_les_noeuds_issus_de_blocs(item) - parent=item.treeParent - parent.removeChild(item) + + p=enfant.vraiParent + parent=enfant.treeParent + parent.removeChild(enfant) + + enfant.JESUISOFF=1 + #print listeExpanded self.children = [] self.childrenComplete = [] @@ -275,17 +271,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): for item in sublist : nouvelItem=item.itemNode(self,item) self.children.append(nouvelItem) - #print " J ajoute ", nouvelItem ,nouvelItem.item.GetLabelText(),"dans" ,self.item.GetLabelText() - #print item - #if ind in listeExpanded : nouvelItem.setExpanded(1) - - #if ind in listeExpanded : print "plie=0" - #else : print "plie=1" - #if ind in listeExpanded : nouvelItem.plie=0 - #else : nouvelItem.plie=1 - #ind=ind+1 - #print "*********** fin build_children ",self.item, self.item.GetLabelText() def chercheNoeudCorrespondant(self,objSimp): sublist = self.item._GetSubList() @@ -293,35 +279,28 @@ class JDCNode(QTreeWidgetItem,GereRegles): if node.item.object==objSimp : return node return None + def affichePanneau(self) : - #print "dans affichePanneau appel getPanel2", self.item.GetLabelText() if self.item.isactif(): itemParent=self - #print self - #print self.getPanel2 while not (hasattr (itemParent,'getPanel2')) : itemParent=itemParent.treeParent if itemParent!=self : itemParent.affichePanneau() return - #print self.getPanel2 self.fenetre=self.getPanel2() else: from monInactifPanel import PanelInactif self.fenetre = PanelInactif(self,self.editor) self.editor.widgetCentraleLayout.addWidget(self.fenetre) - #print "widgetCentraleLayout = ", self.editor.widgetCentraleLayout - #print "nouvelle fenetre ", self.fenetre, " associee a ", self self.editor.anciennefenetre=self.editor.fenetreCentraleAffichee - #print "ancienne fenetre ", self.editor.anciennefenetre self.editor.fenetreCentraleAffichee=self.fenetre self.tree.node_selected= self if self.editor.anciennefenetre != None : a=self.editor.anciennefenetre.close() - #print "je ferme ", self.editor.anciennefenetre if self.editor.widgetTree !=None : index=1 else : index=0 @@ -400,7 +379,6 @@ class JDCNode(QTreeWidgetItem,GereRegles): Rend le noeud courant (self) selectionne et deselectionne tous les autres """ - #print "je suis sur select" for item in self.tree.selectedItems() : item.setSelected(0) self.setSelected( True ) @@ -605,28 +583,22 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.update_node_texte() def onAdd(self,object): - #print "onAdd pour ", self.item.nom + if self.JESUISOFF==1 : return self.editor.init_modif() self.update_nodes() - #print "dans onAdd" ,self.item + # PN -- non necessaire si item=jdc if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True def onSupp(self,object): - #print "onSupp pour ", self.item.nom + if self.JESUISOFF==1 : return self.editor.init_modif() self.update_nodes() # PN -- non necessaire si item=jdc if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True - def detruit_les_noeuds_issus_de_blocs(self,bloc): - from InterfaceQT4 import compobloc - if (isinstance(bloc,compobloc.Node)) : - for node in bloc.childrenComplete : - self.detruit_les_noeuds_issus_de_blocs(node) - parent=node.treeParent - #print "je detruit " , node.item.GetLabelText() - parent.removeChild(node) + + def update_node_valid(self): """Cette methode remet a jour la validite du noeud (icone) @@ -676,6 +648,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): """ Met a jour les noms des SD et valeurs des mots-cles """ value = self.item.GetText() self.setText(1, value) + def update_node_texte_in_blue(self): self.setTextColor( 1,Qt.blue ) diff --git a/InterfaceQT4/monChoixCommande.py b/InterfaceQT4/monChoixCommande.py index 3a297762..c0d40bec 100644 --- a/InterfaceQT4/monChoixCommande.py +++ b/InterfaceQT4/monChoixCommande.py @@ -50,7 +50,7 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget): nouveauTitre=debutTitre self.editor.appliEficas.setWindowTitle(nouveauTitre) - print self.node.tree + #print self.node.tree self.connect(self.RBalpha,SIGNAL("clicked()"),self.afficheAlpha) self.connect(self.RBGroupe,SIGNAL("clicked()"),self.afficheGroupe) @@ -64,7 +64,9 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget): self.editor.labelCommentaire.setText("") - if self.editor.widgetOptionnel!= None : self.editor.widgetOptionnel.close() + if self.editor.widgetOptionnel!= None : + self.editor.widgetOptionnel.close() + self.editor.widgetOptionnel=None self.name=None self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.AjouteRadioButton) @@ -113,6 +115,8 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget): plier=self.editor.afficheCommandesPliees if nodeCourrant==self.node : nouveau=self.node.append_child(self.name,'first',plier) else : nouveau=nodeCourrant.append_brother(self.name,plier=plier) + else : + nouveau = 0 if nouveau == 0 : return # on n a pas insere le noeud nouveau.setDeplie() #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche() diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 2a9f3bd1..eb30610f 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -183,7 +183,7 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition() self.inhibeExpand=True self.node.affichePanneau() - print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV + #print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV QTimer.singleShot(1, self.recentre) if nodeAVoir != None: self.f=nodeAVoir.fenetre diff --git a/InterfaceQT4/monWidgetCommentaire.py b/InterfaceQT4/monWidgetCommentaire.py index 049b53f5..1c61c060 100644 --- a/InterfaceQT4/monWidgetCommentaire.py +++ b/InterfaceQT4/monWidgetCommentaire.py @@ -68,4 +68,5 @@ class MonWidgetCommentaire(QWidget,Ui_WidgetCommentaire,FacultatifOuOptionnel): texte=str(self.commentaireLE.text()) self.editor.init_modif() self.node.item.set_valeur(texte) + self.node.update_node() diff --git a/InterfaceQT4/monWidgetCreeParam.py b/InterfaceQT4/monWidgetCreeParam.py index bf546eaa..b0235116 100644 --- a/InterfaceQT4/monWidgetCreeParam.py +++ b/InterfaceQT4/monWidgetCreeParam.py @@ -35,6 +35,7 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog): """ def __init__(self,editor, name = None,fl = 0): self.editor=editor + self.editor.affiche_infos("") QDialog.__init__(self,editor) self.setupUi(self) self.connecterSignaux() @@ -59,14 +60,17 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog): itemAvant=self.editor.tree.selectedItems()[0] param=itemAvant.addParameters(True) param.item.set_nom(nom) + #PN self.val permet d entrer du texte param.item.set_valeur(val) param.update_node_texte() + param.update_node_valid() self.LBParam.addItem(QString(repr(param.item))) def lineEditValReturnPressed(self): qtVal=self.lineEditVal.text() valString=str(self.lineEditVal.text()) + self.val="" contexte={} exec "from math import *" in contexte jdc=self.editor.jdc @@ -83,8 +87,13 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog): monTexte="monParam="+valString try : exec monTexte in contexte + self.val=valString except : - self.editor.affiche_infos(tr("Valeur incorrecte"),Qt.red) + try : + monTexte="monParam='"+valString+"'" + self.val="'"+valString+"'" + except : + self.editor.affiche_infos(tr("Valeur incorrecte"),Qt.red) if self.lineEditNom.text()!="" and self.dejaExistant==False : self.CreeParametre() diff --git a/InterfaceQT4/monWidgetOptionnel.py b/InterfaceQT4/monWidgetOptionnel.py index eb797065..93a81041 100644 --- a/InterfaceQT4/monWidgetOptionnel.py +++ b/InterfaceQT4/monWidgetOptionnel.py @@ -68,7 +68,7 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel): self.cbPressed=None self.cb=None self.parentQt=parentQt - self.connect(self.bAjoutMC,SIGNAL("clicked()"), self.ajoutMC) + #self.connect(self.bAjoutMC,SIGNAL("clicked()"), self.ajoutMC) #print "fin init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom diff --git a/InterfaceQT4/monWidgetParam.py b/InterfaceQT4/monWidgetParam.py index 9e247aa8..fff4cea4 100644 --- a/InterfaceQT4/monWidgetParam.py +++ b/InterfaceQT4/monWidgetParam.py @@ -54,6 +54,10 @@ class MonWidgetParam(QWidget,Ui_WidgetParam,FacultatifOuOptionnel): self.connect(self.bApres,SIGNAL("clicked()"), self.afficheApres) self.connect(self.bVerifie,SIGNAL("clicked()"), self.verifiePressed) self.editor.affiche_infos("") + if self.editor.widgetOptionnel!= None : + self.editor.widgetOptionnel.close() + self.editor.widgetOptionnel=None + diff --git a/InterfaceQT4/monWidgetPlusieursInto.py b/InterfaceQT4/monWidgetPlusieursInto.py index 5678b5a8..d6d4411b 100644 --- a/InterfaceQT4/monWidgetPlusieursInto.py +++ b/InterfaceQT4/monWidgetPlusieursInto.py @@ -34,7 +34,7 @@ from qtSaisie import SaisieValeur class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): - print "MonWidgetPlusieursInto", nom, self + #print "MonWidgetPlusieursInto", nom, self self.index=1 Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) self.listeValeursCourantes=self.node.item.GetListeValeurs() diff --git a/UiQT4/desWidgetOptionnel.ui b/UiQT4/desWidgetOptionnel.ui index 8c4a733a..d3270f31 100644 --- a/UiQT4/desWidgetOptionnel.ui +++ b/UiQT4/desWidgetOptionnel.ui @@ -127,7 +127,7 @@ font : 'times' 9px 0 0 279 - 85 + 124 @@ -157,73 +157,6 @@ font : 'times' 9px - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 130 - 31 - - - - validation de la saisie - - - background-color:rgb(104,110,149); -color :white; -border-radius : 12px - - - - &Ajouter - - - Shift+A, Alt+A, Alt+A, Alt+A - - - true - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - diff --git a/UiQT4/eficas_en.qm b/UiQT4/eficas_en.qm index fd39c6ff43fab956a1f7ec75983801d25ee9e50d..8d9ca4f002b73e80dfbdaeeffd00d2b4b70e48e1 100644 GIT binary patch delta 8228 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 EKZEv4wEzGB diff --git a/UiQT4/eficas_fr.ts b/UiQT4/eficas_fr.ts index d2e1861e..604b00c3 100644 --- a/UiQT4/eficas_fr.ts +++ b/UiQT4/eficas_fr.ts @@ -517,32 +517,32 @@ - + Impossible d'ajouter la commande - + Impossible d ajouter la commande - + Pas implemente - + Nom de concept deja defini - + Nom de concept deja defini : - + Impossible de trouver le fichier correspondant a l'unite @@ -668,7 +668,7 @@ Le fichier associe n'est pas defini - + Eficas ne peut pas traiter plusieurs instructions sur la meme ligne : %s @@ -779,7 +779,7 @@ Le fichier associe n'est pas defini - + n'est pas un index valide pour append_brother @@ -876,7 +876,7 @@ Le fichier associe n'est pas defini - + &Annuler @@ -946,73 +946,73 @@ Le fichier associe n'est pas defini - + Copie impossible - + Veuillez selectionner un objet a copier - + Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne - + Aucun Objet n a ete copie ou coupe - + Copie refusee - + Eficas n a pas reussi a copier l objet - + Copie refusee pour ce type d objet - + Deplacement refuse - + Deplacement refuse entre 2 fichiers. Seule la copie est autorisee - + Copie impossible a cet endroit - + Veuillez selectionner une commande, un parametre, un commentaire ou une macro - + Choix d'un fichier XML - + Le fichier contient une commande MODEL - + Donnez le nom du fichier XML qui contient la description des variables @@ -1022,135 +1022,135 @@ Le fichier associe n'est pas defini - + Erreur a la generation - + EFICAS ne sait pas convertir ce JDC - + Format %s non reconnu - + EFICAS ne sait pas convertir le JDC selon le format - + Execution impossible - + le JDC doit etre valide pour une execution MAP - + le JDC doit contenir un et un seul composant - + le JDC doit etre valide pour une execution - + Sauvegarder SVP avant l'execution - + sauvegarde - + Sauvegarde du Fichier - + Le fichier <b>%s</b> existe deja. - + &Ecraser - + Sauvegarde de l'input impossible - + Un JdC valide est necessaire pour creer un .input - + Choix du composant obligatoire - + Choix unite %d - + Le fichier %s contient une commande INCLUDE - + Donnez le nom du fichier correspondant a l unite logique - + Fichier pour unite - + Choix d'un fichier de poursuite - + Le fichier %s contient une commande POURSUITE - + Donnez le nom du fichier dont vous voulez faire une poursuite - + Fichiers Med (*.med);;Tous les Fichiers (*) - + Fichier Med - + Veuillez selectionner un fichier Med @@ -1225,37 +1225,37 @@ Le fichier associe n'est pas defini - + Visualisation Fichier - + Impossibilite d'afficher le Fichier - + Sauvegarder Fichier - + Fichier selectionne - + Selection - + Export Med vers Fichier - + Impossibilite d exporter le Fichier @@ -1434,7 +1434,7 @@ Le fichier associe n'est pas defini - + Accquisition Groupe Maille @@ -1644,47 +1644,47 @@ Le fichier associe n'est pas defini - + Fichier Duplique - + Le fichier ne sera pas sauvegarde. - + Fichier - + Le fichier <b>%s</b> est deja ouvert. - + &Duplication - + &Abort - + Fichier Modifie - + Le fichier %s n a pas ete sauvegarde. - + &Sauvegarder @@ -1819,7 +1819,7 @@ Le fichier associe n'est pas defini - + Sauve Format Ligne @@ -1909,12 +1909,12 @@ Le fichier associe n'est pas defini - + TraduitV10V11 - + TraduitV11V12 @@ -2079,7 +2079,7 @@ Le fichier associe n'est pas defini - + Creation Parametre indisponible @@ -2256,12 +2256,12 @@ Le fichier associe n'est pas defini - + les parametres sont lies a un jeu de donnees - + Fichier non encore nomme @@ -2276,22 +2276,22 @@ Le fichier associe n'est pas defini - + le mot clef - + doit etre insere avant - + insertion impossible - + doit etre insere apres @@ -2315,6 +2315,11 @@ Le fichier associe n'est pas defini Date sous la forme JJ/MM/AA + + + pas de regle de construction pour ce jeu de commandes + + ChoixCode @@ -2352,45 +2357,60 @@ Le fichier associe n'est pas defini - + <html><head/><body><p align="center"><span style=" text-decoration: underline;">Affichage</span></p></body></html> - + affiche les commandes par ordre alphabetique - + Alphabetique - + affiche les commandes selon les thèmes - + Ordre de la modélisation - + Par Groupe - + <html><head/><body><p align="center">Filtre Commande</p></body></html> - + filter commands + + + affiche les régles de validité + + + + + ... + + + + + Règles de construction + + DChoixCata @@ -2483,162 +2503,162 @@ p, li { white-space: pre-wrap; } - + &Aide - + toolBar - + &Nouveau - + Ctrl+N - + Nouvel Include - + &Ouvrir - + Ctrl+O - + Enregistrer - + Enregistrer sous - + Fermer - + Ctrl+W - + Fermer tout - + Couper - + Ctrl+X - + Copier - + Ctrl+C - + Coller - + Ctrl+V - + Quitter - + Ctrl+Q - + Rapport de Validation - + Fichier Source - + Fichier Résultat - + Parametres Eficas - + Lecteur documentation - + Eficas - + Version - + Supprimer - + Rechercher - + Rechercher dans l'arbre d'etude - + Ctrl+F - + Replier/Deplier @@ -2648,82 +2668,82 @@ p, li { white-space: pre-wrap; } - + &Edition - + &JeuDeDonnées - + Shift+I - + Ctrl+S - + Ctrl+Shift+S - + Shift+V - + Chercher Mot-Clef - + Rechercher dans le catalogue - + Shift+F - + Shift+D - + Commentaire - + Shift+C - + Paramètres - + Gestion des paramètres - + Shift+P - + Parametre Eficas @@ -2748,30 +2768,40 @@ p, li { white-space: pre-wrap; } - + Run + + + &bad + + + + + Régles du JdC + + JDCEditor - + Save File - + The file <b>%1</b> could not be saved.<br>Reason: %2 - + JDC (*.comm);;All Files (*) - + &Abandonner &Abandonner @@ -2987,52 +3017,52 @@ p, li { white-space: pre-wrap; } - + ... - + <html><head/><body><p><span style=" color:#0000ff;">Commentaire</span></p></body></html> - + Détruit le commentaire - + Affiche les commandes possibles - + &Commandes - + Shift+A, Alt+A, Alt+A, Alt+A - + Affiche le formulaire de la commande précédente - + << - + Affiche le formulaire de la commande suivante - + >> @@ -3415,7 +3445,7 @@ p, li { white-space: pre-wrap; } - + ... @@ -3425,37 +3455,37 @@ p, li { white-space: pre-wrap; } - + Remonte la ligne - + Descend la ligne - + supprime une ligne - + Ajoute une ligne - + Montre l'ensemble des valeurs - + Ouvre un fichier de sélection des valeurs - + Détruit le mot-clef @@ -3946,14 +3976,22 @@ p, li { white-space: pre-wrap; } self.appliEficas - + Wrapper Files (*.xml);;All Files (*) - + Noname + + viewRegles + + + Dialog + + + diff --git a/convert/parseur_python.py b/convert/parseur_python.py index ba49c2e8..15a0b7c9 100644 --- a/convert/parseur_python.py +++ b/convert/parseur_python.py @@ -24,15 +24,19 @@ from Extensions.i18n import tr escapedQuotesRE = re.compile(r"(\\\\|\\\"|\\\')") stringsAndCommentsRE = \ re.compile(u"(\"\"\".*?\"\"\"|'''.*?'''|\"[^\"]*\"|\'[^\']*\'|#.*?\n)", re.DOTALL) +#stringsAndCommentsRE = \ +# re.compile(u"(\"\"\".*\"\"\"|'''.*'''|\"[^\"]*\"|\'[^\']*\'|#.*\n)", re.DOTALL) allchars = string.maketrans(u"", "") allcharsExceptNewline = allchars[: allchars.index('\n')]+allchars[allchars.index('\n')+1:] -if sys.platform[0:5]=="linux" : - allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline)) -elif sys.platform[0:3]=="win" : - allcharsExceptNewlineTranstable = dict((ord(char), u'*') for char in allcharsExceptNewline)#string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline)) -else : - allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline)) - print 'Plateforme non geree' +allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline)) + +#if sys.platform[0:5]=="linux" : +# allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline)) +#elif sys.platform[0:3]=="win" : +# allcharsExceptNewlineTranstable = dict((ord(char), u'*') for char in allcharsExceptNewline)# +#else : +# allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline)) +# print 'Plateforme non geree' def maskStringsAndComments(src): """Masque tous les caracteres de src contenus dans des commentaires ou des strings multilignes (triples @@ -40,7 +44,13 @@ def maskStringsAndComments(src): Le masquage est realise en remplacant les caracteres par des * Attention : cette fonction doit etre utilisee sur un texte complet et pas ligne par ligne """ - src = escapedQuotesRE.sub(u"**", src) +# remplace les \\, les \" les \' par ** +# supprime toutes les chaines ou commentaires ,y compris multiligne i +# entre 3 ou 1 simples ou doubles quotes (ouvrantes fermantes) ou # +# laisse les non fermantes ou non ouvrantes + #src = escapedQuotesRE.sub(u"**", src) + # le u met le bazar dans le translate + src = escapedQuotesRE.sub("**", src) allstrings = stringsAndCommentsRE.split(src) # every odd element is a string or comment for i in xrange(1, len(allstrings), 2): @@ -49,8 +59,6 @@ def maskStringsAndComments(src): allstrings[i][3:-3].translate(allcharsExceptNewlineTranstable)+ \ allstrings[i][-3:] else: - test= allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable) - #test +\ allstrings[i] = allstrings[i][0]+ \ allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)+ \ allstrings[i][-1] diff --git a/generator/generator_TELEMAC.py b/generator/generator_TELEMAC.py index cd70db2b..610ebb4e 100644 --- a/generator/generator_TELEMAC.py +++ b/generator/generator_TELEMAC.py @@ -75,7 +75,6 @@ class TELEMACGenerator(PythonGenerator): #---------------------------------------------------------------------------------------- def writeDefault(self,fn) : - print "kkkkkkkkkkkkkkkkkkkkk" fileDico = fn[:fn.rfind(".")] + '.py' f = open( str(fileDico), 'wb') f.write( self.texteDico ) -- 2.39.2