From: pascale.noyret Date: Tue, 24 Nov 2015 17:28:56 +0000 (+0100) Subject: PSEN + bug 52985 X-Git-Tag: nouvelEficas_V7_7_0rc2~2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=67acf086fe9836af1ab54dafe9a29f20a532aa46;p=modules%2Feficas.git PSEN + bug 52985 --- diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index 7b1d2cfe..ddee5b31 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -303,16 +303,21 @@ class JDCNode(QTreeWidgetItem,GereRegles): def affichePanneau(self) : #print " affichePanneau " , self.item.nom - if self.item.isactif(): + #if self.item.isactif(): + #if self.editor.code == 'ASTER' and not(self.item.isactif()) : + # posera des pb si un code decide d appeler FIN un mot clef + # on resoudera a ce moment la + # pour l instant pas de poussiere sous le tapis + if not(self.item.isactif()) : + from monWidgetInactif import MonWidgetInactif + self.fenetre = MonWidgetInactif(self,self.editor) + else: itemParent=self while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent if itemParent!=self : itemParent.affichePanneau() return self.fenetre=self.getPanel() - else: - from monInactifPanel import PanelInactif - self.fenetre = PanelInactif(self,self.editor) for indiceWidget in range(self.editor.widgetCentraleLayout.count()): widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget) @@ -842,7 +847,9 @@ class JDCNode(QTreeWidgetItem,GereRegles): if i.item.object== cherche : node=i break - if node : node.affichePanneau() + if node : + node.affichePanneau() + node.select() def selectApres(self): i=self.item.jdc.etapes.index(self.item.object) @@ -855,4 +862,6 @@ class JDCNode(QTreeWidgetItem,GereRegles): if i.item.object== cherche : node=i break - if node : node.affichePanneau() + if node : + node.affichePanneau() + node.select() diff --git a/InterfaceQT4/compocommandecomm.py b/InterfaceQT4/compocommandecomm.py new file mode 100644 index 00000000..1ea6a0a1 --- /dev/null +++ b/InterfaceQT4/compocommandecomm.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +import traceback +import string + +from Editeur import Objecttreeitem +from Extensions.eficas_exception import EficasException +import compocomm + +class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem): + itemNode=compocomm.Node + + def init(self): + self.setfunction = self.set_valeur + + def GetIconName(self): + """ + Retourne le nom de l'icône associée au noeud qui porte self, + dépendant de la validité de l'objet + NB : une commande commentarisée est toujours valide ... + """ + if self.isvalid(): + return "ast-green-percent" + else: + return "ast-red-percent" + + def GetLabelText(self): + """ Retourne 3 valeurs : + - le texte à afficher dans le noeud représentant l'item + - la fonte dans laquelle afficher ce texte + - la couleur du texte + """ + return 'commentaire' + + def get_valeur(self): + """ + Retourne la valeur de la commande commentarisée cad son texte + """ + return self.object.get_valeur() or '' + + def GetText(self): + texte = self.object.valeur + texte = string.split(texte,'\n')[0] + if len(texte) < 25 : + return texte + else : + return texte[0:24] + + def set_valeur(self,valeur): + """ + Afefcte valeur à l'objet commande commentarisée + """ + self.object.set_valeur(valeur) + + def GetSubList(self): + """ + Retourne la liste des fils de self + """ + return [] + + def uncomment(self): + """ + Demande à l'objet commande commentarisée de se décommentariser. + Si l'opération s'effectue correctement, retourne l'objet commande + et éventuellement le nom de la sd produite, sinon lève une exception + """ + try: + commande,nom = self.object.uncomment() + #self.parent.children[pos].select() + except Exception as e: + traceback.print_exc() + raise EficasException(e) + return commande,nom + +import Accas +treeitem =COMMANDE_COMMTreeItem +objet = Accas.COMMANDE_COMM diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index 9f3aaa3e..f9013c40 100755 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -207,22 +207,6 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): self.tree = browser.JDCTree( jdc_item, self ) self.appliEficas.construitMenu() - #-------------------# Pour execution avec output sans une fenetre EFICAS. (erreurs encore dans la fenetre bash) - def runPSEN_2(self): - #-------------------# - if self.modified or self.fichier==None : - QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution ")) - return - - #monPython="/home/A96028/salome75/prerequisites/install/Python-273-tcl8513-tk8513/bin/python" - #monWrapper="/local00/home/A96028/GitEficasTravail/eficas/PSEN_Eficas/PSSEWrapper.py" - path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN')) - monWrapper = os.path.join(path1, 'PSSEWrapper.py') - cmd=['python',monWrapper] - - w = ViewText2( self.QWParent, cmd ) - w.setWindowTitle( "execution" ) - w.exec_() #-------------------# Pour execution avec output et error dans le bash diff --git a/InterfaceQT4/feuille.py b/InterfaceQT4/feuille.py index 0b67caa4..79bb9e72 100644 --- a/InterfaceQT4/feuille.py +++ b/InterfaceQT4/feuille.py @@ -44,7 +44,7 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel): self.node.fenetre=self # on se positionne pour les icones - os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__)))) + #os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__)))) self.setupUi(self) self.prendLeFocus=0 diff --git a/InterfaceQT4/monWidgetInactif.py b/InterfaceQT4/monWidgetInactif.py new file mode 100644 index 00000000..a247920e --- /dev/null +++ b/InterfaceQT4/monWidgetInactif.py @@ -0,0 +1,79 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +# Modules Eficas + +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +from desWidgetInactif import Ui_WidgetInactif +import Accas +import os +import string + + +# Import des panels + +class MonWidgetInactif(QWidget,Ui_WidgetInactif): + """ + """ + def __init__(self,node,editor): + QWidget.__init__(self,None) + self.node=node + self.editor=editor + self.setupUi(self) + if self.editor.widgetOptionnel!= None : + self.monOptionnel=self.editor.widgetOptionnel + else : + self.monOptionnel=MonWidgetOptionnel(self) + self.editor.widgetOptionnel=self.monOptionnel + self.editor.splitter.addWidget(self.monOptionnel) + self.afficheOptionnel() + self.connect(self.bAvant,SIGNAL("clicked()"), self.afficheAvant) + self.connect(self.bApres,SIGNAL("clicked()"), self.afficheApres) + self.connect(self.bCatalogue,SIGNAL("clicked()"), self.afficheCatalogue) + + + + def setValide(self): + pass + + def afficheOptionnel(self): + # N a pas de parentQt. doit donc etre redefini + liste=[] + #print "dans afficheOptionnel", self.monOptionnel + # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple) + #if self.monOptionnel == None : return + self.monOptionnel.parentMC=self + self.monOptionnel.affiche(liste) + + + def afficheCatalogue(self): + if self.editor.widgetOptionnel != None : self.monOptionnel.hide() + self.racine.affichePanneau() + if self.node : self.node.select() + else : self.racine.select() + + def afficheApres(self): + self.node.selectApres() + + def afficheAvant(self): + self.node.selectAvant() + + diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py old mode 100644 new mode 100755 index 04525604..e2b39a9e --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -284,11 +284,21 @@ class Appli(Ui_Eficas,QMainWindow): self.enleverRechercherDsCatalogue() self.enleverNewInclude() self.ajoutExecution() + self.ajoutHelpPSEN() + self.ajoutIcones() def TELEMAC(self): self.enleverActionsStructures() self.enleverNewInclude() + def ajoutHelpPSEN(self): + self.actionParametres_Eficas.setText('Help PSEN') +# + #Oself.disconnect(self.actionParametres_Eficas) + self.connect(self.actionParametres_Eficas,SIGNAL("triggered()"),self.aidePSEN) + + + def ChercheGrpMesh(self): Msg,listeGroup=self.ChercheGrpMeshInSalome() if Msg == None : @@ -319,20 +329,17 @@ class Appli(Ui_Eficas,QMainWindow): def ajoutIcones(self) : # Pour pallier les soucis de repertoire d icone - icon = QIcon(self.repIcon+"/New24.png") + print self.repIcon + icon = QIcon(self.repIcon+"/new_file.png") self.action_Nouveau.setIcon(icon) - icon1 = QIcon(self.repIcon+"/Open24.png") + icon1 = QIcon(self.repIcon+"/ouvrir.png") self.actionOuvrir.setIcon(icon1) - icon2 = QIcon(self.repIcon+"/Save24.png") + icon2 = QIcon(self.repIcon+"/save.png") self.actionEnregistrer.setIcon(icon2) - icon3 = QIcon(self.repIcon+"/Cut24.png") - self.actionCouper.setIcon(icon3) - icon4 = QIcon(self.repIcon+"/Copy24.png") - self.actionCopier.setIcon(icon4) - icon5 = QIcon(self.repIcon+"/Paste24.png") - self.actionColler.setIcon(icon5) - icon6 = QIcon(self.repIcon+"/Delete24.png") + icon6 = QIcon(self.repIcon+"/delete.png") self.actionSupprimer.setIcon(icon6) + icon7 = QIcon(self.repIcon+"/roue.png") + self.actionExecution.setIcon(icon7) @@ -381,7 +388,7 @@ class Appli(Ui_Eficas,QMainWindow): self.actionSauveLigne = QAction(self) self.actionSauveLigne.setText(tr("Sauve Format Ligne")) - self.connect(self.actionParametres_Eficas,SIGNAL("triggered()"),self.optionEditeur) + #self.connect(self.actionParametres_Eficas,SIGNAL("triggered()"),self.optionEditeur) self.connect(self.actionLecteur_Pdf,SIGNAL("triggered()"),self.optionPdf) self.connect(self.actionTraduitV9V10,SIGNAL("triggered()"),self.traductionV9V10) self.connect(self.actionTraduitV10V11,SIGNAL("triggered()"),self.traductionV10V11) @@ -534,17 +541,26 @@ class Appli(Ui_Eficas,QMainWindow): monVisuDialg.show() def aidePPal(self) : - if self.code==None : return repAide=os.path.dirname(os.path.abspath(__file__)) - maD=repAide+"/../Aide" + maD=os.path.join( repAide,'..','Doc','html') try : - indexAide=maD+"/fichiers_EFICAS/index.html" + indexAide=os.path.join(maD,'index.html') if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide else : cmd="start "+indexAide os.system(cmd) except: QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee ")) + def aidePSEN(self) : + repAide=os.path.dirname(os.path.abspath(__file__)) + maD=os.path.join( repAide,'..','Doc','html') + try : + indexAide=os.path.join(maD,'index.html') + if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide + else : cmd="start "+indexAide + os.system(cmd) + except: + QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee ")) def aideCode(self) : if self.code==None : return diff --git a/UiQT4/CMakeLists.txt b/UiQT4/CMakeLists.txt index a6c1dff7..3fe70d61 100644 --- a/UiQT4/CMakeLists.txt +++ b/UiQT4/CMakeLists.txt @@ -54,6 +54,7 @@ eficas_compile_ui ( desWidgetDate.ui ) eficas_compile_ui ( desWidgetFact.ui ) eficas_compile_ui ( desWidgetFactPlie.ui ) eficas_compile_ui ( desWidgetHeure.ui ) +eficas_compile_ui ( desWidgetInactif.ui ) eficas_compile_ui ( desWidgetInformation.ui ) eficas_compile_ui ( desWidgetMatrice.ui ) eficas_compile_ui ( desWidgetParam.ui ) diff --git a/UiQT4/desWidgetInactif.ui b/UiQT4/desWidgetInactif.ui new file mode 100644 index 00000000..336a26fa --- /dev/null +++ b/UiQT4/desWidgetInactif.ui @@ -0,0 +1,471 @@ + + + WidgetInactif + + + + 0 + 0 + 946 + 495 + + + + + 350 + 0 + + + + DInactif + + + + + + + + + 0 + 0 + + + + QFrame::Box + + + QFrame::Raised + + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 13 + 20 + + + + + + + + + 17 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Affiche le rapport de validité de la commande + + + border : 0px + + + + + + + ../Editeur/icons/ast-white-square.png../Editeur/icons/ast-white-square.png + + + + 21 + 31 + + + + false + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 13 + 20 + + + + + + + + + 0 + 0 + + + + + 150 + 31 + + + + QFrame::NoFrame + + + QFrame::Raised + + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 2 + 40 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Ignored + + + + 2 + 40 + + + + + + + + 4 + + + QLayout::SetFixedSize + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 13 + 20 + + + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + Qt::ClickFocus + + + Détruit la commande + + + border : 0px + + + ... + + + + ../Editeur/icons/deleteRond.png../Editeur/icons/deleteRond.png + + + + 21 + 31 + + + + + + RBValide + labelNomCommande + horizontalSpacer_3 + horizontalSpacer_4 + RBPoubelle + horizontalSpacer_5 + + + + + + + + + 0 + 0 + + + + + 160 + 31 + + + + Qt::ClickFocus + + + Affiche les commandes possibles + + + background-color:rgb(104,110,149); +color :white; +border-radius : 12px + + + + &Commandes + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + + + + + + + + 0 + 0 + + + + + 60 + 24 + + + + + 60 + 24 + + + + Qt::ClickFocus + + + Affiche le formulaire de la commande précédente + + + background-color:rgb(104,110,149); +color :white; +border-radius : 12px + + + + << + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + + + + + + 0 + 0 + + + + + 60 + 24 + + + + + 60 + 24 + + + + Qt::ClickFocus + + + Affiche le formulaire de la commande suivante + + + background-color:rgb(104,110,149); +color :white; +border-radius : 12px + + + + >> + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 66 + + + + + + + + + 0 + 0 + + + + <html><head/><body><p align="center"><span style=" font-size:16pt;">Le noeud sélectionné</span></p><p align="center"><span style=" font-size:16pt;">ne correspond pas à un objet actif</span></p></body></html> + + + false + + + + + + + Qt::Vertical + + + + 20 + 67 + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;">Seules les commandes placées</span></p> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;"> entre : DEBUT / FIN sont actives </span></p></body></html> + + + false + + + + + + + Qt::Vertical + + + + 20 + 66 + + + + + + + + qPixmapFromMimeSource + + + MonLabelClic + QLabel +
monLabelClic.h
+
+
+ + +
diff --git a/UiQT4/makefile b/UiQT4/makefile index e22224e4..30ed7279 100644 --- a/UiQT4/makefile +++ b/UiQT4/makefile @@ -9,6 +9,7 @@ PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCo desWidgetOptionnel.py Tuple2.py Tuple3.py \ desWidgetBloc.py desWidgetCB.py desWidgetCommentaire.py desWidgetDate.py \ desWidgetFact.py desWidgetFactPlie.py desWidgetHeure.py desWidgetInformation.py \ + desWidgetInactif.py \ desWidgetMatrice.py desWidgetParam.py desWidgetPlusieursBase.py desWidgetPlusieursInto.py \ desWidgetPlusieursIntoOrdonne.py desWidgetPlusieursTuple.py desWidgetRadioButton.py \ desWidget4a6RadioButton.py desWidgetSimpBase.py desWidgetSDCOInto.py desWidgetSimpBool.py \ diff --git a/UiQT4/myMain.ui b/UiQT4/myMain.ui index 47ba2cf4..04f25f74 100644 --- a/UiQT4/myMain.ui +++ b/UiQT4/myMain.ui @@ -173,8 +173,8 @@ QMenuBar { &Aide - +