X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonWidgetCommande.py;h=69bafce99385229a7c8a9698f5e5a27399d532ce;hb=9a70f047c05012091a3cf8c6efc48b39ab2bb6e9;hp=18bc000083589cd43330d94ee832e9e9e3b99d3a;hpb=0be4fb74bf1970e494a902a1a720b44617961eaf;p=tools%2Feficas.git diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 18bc0000..69bafce9 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2013 EDF R&D +# Copyright (C) 2007-2017 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 @@ -18,25 +18,27 @@ # # Modules Python # Modules Eficas +from __future__ import absolute_import +try : + from builtins import str +except : pass + +import types from desWidgetCommande import Ui_WidgetCommande -from groupe import Groupe -from gereIcones import FacultatifOuOptionnel -from determine import monEnvQT5 +from .groupe import Groupe +from .gereIcones import FacultatifOuOptionnel + +from PyQt5.QtWidgets import QApplication, QWidget, QSpacerItem, QSizePolicy +from PyQt5.QtGui import QFont, QIcon +from PyQt5.QtCore import QTimer +from PyQt5.QtCore import Qt -if monEnvQT5: - from PyQt5.QtWidgets import QApplication, QWidget, QSpacerItem, QSizePolicy - from PyQt5.QtGui import QFont, QIcon - from PyQt5.QtCore import QTimer -else : - from PyQt4.QtGui import * - from PyQt4.QtCore import * from Extensions.i18n import tr import Accas import os -import string # Import des panels @@ -45,7 +47,6 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): """ """ def __init__(self,node,editor,etape): - #print "MonWidgetCommande ", self self.listeAffichageWidget=[] self.inhibe=0 self.ensure=0 @@ -53,43 +54,39 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self) editor.inhibeSplitter=0 + self.frameAffichage.setMinimumHeight(20) if node.item.get_fr() != "" : self.labelDoc.setText(node.item.get_fr()) - else : self.labelDoc.close() + else : + self.labelDoc.close() + self.frameAffichage.resize(self.frameAffichage.width(),50) - if (etape.get_type_produit()==None): self.LENom.close() - elif (hasattr(etape, 'sdnom')) and etape.sdnom != "sansnom" and etape.sdnom != None: self.LENom.setText(etape.sdnom) + #if (etape.get_type_produit()==None): self.LENom.close() + #test,mess = self.node.item.nomme_sd('ee') + if not(hasattr(etape.definition,'sd_prod')) or (etape.definition.sd_prod==None): self.LENom.close() + elif (hasattr(etape.definition,'sd_prod') and type(etape.definition.sd_prod)== types.FunctionType):self.LENom.close() + elif (hasattr(etape, 'sdnom')) and etape.sdnom != "sansnom" and etape.sdnom != None: self.LENom.setText(etape.sdnom) else : self.LENom.setText("") + maPolice= QFont("Times", 10,) self.setFont(maPolice) self.labelNomCommande.setText(tr(self.obj.nom)) - self.commandesLayout.addStretch() - self.commandesLayout.focusInEvent=self.focusInEvent - self.scrollAreaCommandes.focusInEvent=self.focusInEvent - - if monEnvQT5 : - if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close() - else : self.bCatalogue.clicked.connect(self.afficheCatalogue) - if self.editor.code in ['Adao','MAP'] : - self.bAvant.close() - self.bApres.close() - else : - self.bAvant.clicked.connect(self.afficheAvant) - self.bApres.clicked.connect(self.afficheApres) - self.LENom.returnPressed.connect(self.nomChange) - else : - if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close() - else : self.connect(self.bCatalogue,SIGNAL("clicked()"), self.afficheCatalogue) - if self.editor.code in ['Adao','MAP'] : - self.bAvant.close() - self.bApres.close() - else : - self.connect(self.bAvant,SIGNAL("clicked()"), self.afficheAvant) - self.connect(self.bApres,SIGNAL("clicked()"), self.afficheApres) - self.connect(self.LENom,SIGNAL("returnPressed()"),self.nomChange) + if self.editor.closeAutreCommande==True : self.closeAutreCommande() + else : + try : + self.bCatalogue.clicked.connect(self.afficheCatalogue) + self.bAvant.clicked.connect(self.afficheAvant) + self.bApres.clicked.connect(self.afficheApres) + except : + pass + self.LENom.returnPressed.connect(self.nomChange) + if self.editor.code in ['Adao','ADAO'] and self.editor.closeFrameRechercheCommande==True : + self.frameAffichage.close() + + if self.editor.code in ['CARMELCND',] : self.closeAutreCommande() self.racine=self.node.tree.racine if self.node.item.GetIconName() == "ast-red-square" : self.LENom.setDisabled(True) @@ -100,22 +97,27 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.RBPoubelle.close() # JDC Fige return # Pas de MC Optionnels pour Carmel - from monWidgetOptionnel import MonWidgetOptionnel + from .monWidgetOptionnel import MonWidgetOptionnel if self.editor.widgetOptionnel!= None : self.monOptionnel=self.editor.widgetOptionnel else : - self.monOptionnel=MonWidgetOptionnel(self) - self.editor.widgetOptionnel=self.monOptionnel self.editor.inhibeSplitter=1 + self.monOptionnel=MonWidgetOptionnel(self.editor) + self.editor.widgetOptionnel=self.monOptionnel self.editor.splitter.addWidget(self.monOptionnel) - self.editor.inhibeSplitter=0 self.editor.ajoutOptionnel() + self.editor.inhibeSplitter=0 self.afficheOptionnel() + #self.editor.restoreSplitterSizes() - self.editor.restoreSplitterSizes() #print "fin init de widget Commande" + def closeAutreCommande(self): + self.bCatalogue.close() + self.bAvant.close() + self.bApres.close() + def donnePremier(self): #print "dans donnePremier" QApplication.processEvents() @@ -147,8 +149,9 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.inhibe=0 return True except : - print self.listeAffichageWidget - print "souci ds focusNextPrevChild" + pass + #print self.listeAffichageWidget + #print "souci ds focusNextPrevChild" if i==0 and next==False and not self.inhibe: if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'): self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1]) @@ -178,13 +181,18 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): i=i+1 # si on boucle on perd l'ordre + def afficheNieme(self,n): + #print ('ds afficheNieme') + self.listeAffichageWidget[n].setFocus(7) + def afficheSuivant(self,f): + #print ('ds afficheSuivant') try : i=self.listeAffichageWidget.index(f) next=i+1 except : next=1 - if (next==len(self.listeAffichageWidget) -1 ): next =0 + if (next==len(self.listeAffichageWidget) ): next =0 #self.f=next #QTimer.singleShot(1, self.rendVisible) try : @@ -194,14 +202,14 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): def nomChange(self): nom = str(self.LENom.text()) - nom = string.strip(nom) + nom = nom.strip() if nom == '' : return # si pas de nom, on ressort sans rien faire test,mess = self.node.item.nomme_sd(nom) self.editor.affiche_commentaire(mess) #Notation scientifique if test : - from politiquesValidation import Validation + from .politiquesValidation import Validation validation=Validation(self.node,self.editor) validation.AjoutDsDictReelEtape() @@ -216,29 +224,42 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.monGroupe=self.monOptionnel.afficheOptionnel(liste,self) - #def focusInEvent(self,event): + def focusInEvent(self,event): #print "je mets a jour dans focusInEvent de monWidget Commande " - # if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel - # self.afficheOptionnel() + if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel + self.afficheOptionnel() def reaffiche(self,nodeAVoir=None): + # Attention delicat. les appels de fonctions ne semblent pas pouvoir etre supprimes! self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition() self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition() self.inhibeExpand=True self.node.affichePanneau() - #print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV - QTimer.singleShot(1, self.recentre) - if nodeAVoir != None: + #QTimer.singleShot(1, self.recentre) + if nodeAVoir != None and nodeAVoir!=0: self.f=nodeAVoir.fenetre if self.f==None : newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object) self.f = newNode.fenetre - print "dans reaffiche",self.f, nodeAVoir.item.nom - if self.f != None and self.f.isVisible() : return - if self.f != None : QTimer.singleShot(1, self.rendVisible) + if self.f != None and self.f.isVisible() : self.inhibeExpand=False; return + if self.f != None : self.rendVisible() + else : self.recentre() + else : self.recentre() self.inhibeExpand=False + def reafficheSeulement(self,nodeAReafficher,index): + #print ('ds reafficheSeulement', nodeAReafficher) + parentNodeAReafficher=nodeAReafficher.parentQt + index=parentNodeAReafficher.commandesLayout.indexOf(nodeAReafficher) + oldFenetre=nodeAReafficher.node.fenetre + newWidget=nodeAReafficher.node.getPanelGroupe(parentNodeAReafficher,self,index) + nodeAReafficher.node.fenetre=newWidget + oldFenetre.setParent(None) + oldFenetre.close() + oldFenetre.deleteLater() + #print ("fin pour " , self.node.item.nom) + def recentre(self): QApplication.processEvents() @@ -248,10 +269,11 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): def rendVisibleNoeud(self,node): self.f=node.fenetre - print "dans rendVisibleNoeud",self.f, node.item.nom + #print "dans rendVisibleNoeud",self.f QTimer.singleShot(1, self.rendVisible) def rendVisible(self): + #print "dans rendVisible",self.f QApplication.processEvents() self.f.setFocus(7) self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f) @@ -277,6 +299,8 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): icon=QIcon(self.repIcon+"/ast-red-ball.png") if self.node.item.GetIconName() == "ast-yellow-square" : icon=QIcon(self.repIcon+"/ast-yel-ball.png") + self.LENom.setDisabled(False) + if self.node.item.GetIconName() == "ast-red-square" : self.LENom.setDisabled(True) self.RBValide.setIcon(icon)