X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonWidgetCommande.py;h=9e0868c0ed18e1239ed892d451e4053d5f10d6c0;hb=e57a61fe25c3abf804095d8027afe0dc788877a0;hp=0304715f071d35332926ebd7208273c0d18a7bb3;hpb=16d5922e798b1254eb558678612711d72ed38b32;p=tools%2Feficas.git diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 0304715f..9e0868c0 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -22,11 +22,21 @@ from desWidgetCommande import Ui_WidgetCommande from groupe import Groupe from gereIcones import FacultatifOuOptionnel -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from determine import monEnvQT5 + +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 @@ -35,54 +45,238 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): """ """ def __init__(self,node,editor,etape): - print "MonWidgetCommande ", self - Groupe.__init__(self,node,editor,None,etape.definition,etape,1) + #print "MonWidgetCommande ", self + self.listeAffichageWidget=[] + self.inhibe=0 + self.ensure=0 + editor.inhibeSplitter=1 + Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self) + editor.inhibeSplitter=0 + + if node.item.get_fr() != "" : self.labelDoc.setText(node.item.get_fr()) + else : self.labelDoc.close() + if (etape.get_type_produit()==None): self.LENom.close() - elif (hasattr (etape, 'sdnom')) : self.LENom.setText(etape.sdnom) + 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.repIcon=self.appliEficas.repIcon - self.labelNomCommande.setText(self.obj.nom) + self.labelNomCommande.setText(tr(self.obj.nom)) + self.commandesLayout.addStretch() self.commandesLayout.focusInEvent=self.focusInEvent self.scrollAreaCommandes.focusInEvent=self.focusInEvent - #self.RBValide.focusInEvent=FacultatifOuOptionnel.focusInEvent - self.connect(self.bCatalogue,SIGNAL("clicked()"), self.afficheCatalogue) + + + 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) + self.racine=self.node.tree.racine - + if self.node.item.GetIconName() == "ast-red-square" : self.LENom.setDisabled(True) self.setAcceptDrops(True) + self.etablitOrdre() + + if self.editor.code == "CARMELCND" : + self.RBPoubelle.close() # JDC Fige + return # Pas de MC Optionnels pour Carmel + from monWidgetOptionnel import MonWidgetOptionnel - if hasattr(self.editor,'widgetOptionnel') : + 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.editor.splitter.addWidget(self.monOptionnel) + self.editor.inhibeSplitter=0 + self.editor.ajoutOptionnel() self.afficheOptionnel() + self.editor.restoreSplitterSizes() + #print "fin init de widget Commande" + + + def donnePremier(self): + #print "dans donnePremier" + QApplication.processEvents() + if self.listeAffichageWidget != [] : + self.listeAffichageWidget[0].setFocus(7) + QApplication.processEvents() + #print self.focusWidget() + + + def focusNextPrevChild(self, next): + # on s assure que ce n est pas un chgt de fenetre + #print "je passe dans focusNextPrevChild" + if self.editor.fenetreCentraleAffichee != self : return True + f=self.focusWidget() + if f not in self.listeAffichageWidget : + i=0 + while not hasattr (f,'AAfficher') : + if f==None :i=-1; break + f=f.parentWidget() + if hasattr(f,'AAfficher') : f=f.AAfficher + if i != -1 : i=self.listeAffichageWidget.index(f) + else :i=self.listeAffichageWidget.index(f) + if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe: + try : + self.listeAffichageWidget[1].setFocus(7) + w=self.focusWidget() + self.inhibe=1 + w.focusPreviousChild() + self.inhibe=0 + return True + except : + 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]) + self.listeAffichageWidget[-2].setFocus(7) + self.inhibe=1 + w=self.focusWidget() + w.focusNextChild() + self.inhibe=0 + return True + if i==0 and next==True and not self.inhibe: + self.listeAffichageWidget[0].setFocus(7) + self.inhibe=1 + w=self.focusWidget() + w.focusNextChild() + self.inhibe=0 + return True + if i>0 and next==False and not self.inhibe: + if isinstance(self.listeAffichageWidget[i-1],QRadioButton): + self.listeAffichageWidget[i-1].setFocus(7) + return True + return QWidget.focusNextPrevChild(self, next) + + def etablitOrdre(self): + i=0 + while(i +1 < len(self.listeAffichageWidget)): + self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1]) + i=i+1 + # si on boucle on perd l'ordre + + def afficheSuivant(self,f): + try : + i=self.listeAffichageWidget.index(f) + next=i+1 + except : + next=1 + if (next==len(self.listeAffichageWidget) -1 ): next =0 + #self.f=next + #QTimer.singleShot(1, self.rendVisible) + try : + self.listeAffichageWidget[next].setFocus(7) + except : + pass + + def nomChange(self): + nom = str(self.LENom.text()) + nom = string.strip(nom) + 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 + validation=Validation(self.node,self.editor) + validation.AjoutDsDictReelEtape() def afficheOptionnel(self): # N a pas de parentQt. doit donc etre redefini liste=self.ajouteMCOptionnelDesBlocs() - self.monOptionnel.parentMC=self - self.monOptionnel.affiche(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.parentCommande=self + self.monOptionnel.titre(self.obj.nom) + 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 " - self.afficheOptionnel() + # if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel + # self.afficheOptionnel() def reaffiche(self,nodeAVoir=None): + self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition() + self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition() + self.inhibeExpand=True self.node.affichePanneau() - if nodeAVoir != None: - f=nodeAVoir.fenetre - qApp.processEvents() - self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(f) + #print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV + 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) + self.inhibeExpand=False + + + def recentre(self): + QApplication.processEvents() + s=self.editor.fenetreCentraleAffichee.scrollAreaCommandes + s.horizontalScrollBar().setSliderPosition(self.avantH) + s.verticalScrollBar().setSliderPosition(self.avantV) + + def rendVisibleNoeud(self,node): + self.f=node.fenetre + print "dans rendVisibleNoeud",self.f, node.item.nom + QTimer.singleShot(1, self.rendVisible) + + def rendVisible(self): + QApplication.processEvents() + self.f.setFocus(7) + self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f) def afficheCatalogue(self): - self.monOptionnel.hide() + 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() + + def setValide(self): + if not(hasattr (self,'RBValide')) : return + icon = QIcon() + if self.node.item.object.isvalid() : + icon=QIcon(self.repIcon+"/ast-green-ball.png") + else : + 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.RBValide.setIcon(icon) + +