X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonChoixCommande.py;h=bc0cebdaf5b107539c10c8d2646807ccf59d39f2;hb=8b202e4a0e933f400731a984944bf84aa9a06f48;hp=a1c7b04823f4afbfa685890b2d884551c6509f9a;hpb=df0e1a1f57e70d3d99dd7fb381845500c3d3c6dd;p=tools%2Feficas.git
diff --git a/InterfaceQT4/monChoixCommande.py b/InterfaceQT4/monChoixCommande.py
index a1c7b048..bc0cebda 100644
--- a/InterfaceQT4/monChoixCommande.py
+++ b/InterfaceQT4/monChoixCommande.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2013 EDF R&D
+# Copyright (C) 2007-2021 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
@@ -19,153 +19,340 @@
# Modules Python
# Modules Eficas
+from __future__ import absolute_import
+try :
+ from builtins import str
+except : pass
+
from desChoixCommandes import Ui_ChoixCommandes
-from PyQt4 import *
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
+from PyQt5.QtWidgets import QWidget, QAction ,QButtonGroup, QRadioButton, QLabel , QPushButton, QSpacerItem, QSizePolicy, QGridLayout
+from PyQt5.QtGui import QIcon, QPixmap
+from PyQt5.QtCore import QSize, QRect
+
from Extensions.i18n import tr
import os
-
+
# Import des panels
-class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
- """
- """
- def __init__(self,node, jdc_item, editor):
- QtGui.QWidget.__init__(self,None)
- self.setupUi(self)
- #self.labelIcone.setText('');
-
- self.item = jdc_item
- self.node = node
- self.editor = editor
- self.jdc = self.item.object.get_jdc_root()
- if self.editor.widgetTree != None:
- self.connect(self.bFormulaire,SIGNAL("clicked()"),self.bFormulaireReturnPressed)
- else :
- self.bFormulaire.close()
- debutTitre=self.editor.titre
- self.listeWidget=[]
- if self.editor.fichier != None :
- nouveauTitre=debutTitre+" "+str(os.path.basename(self.editor.fichier))
- else :
- nouveauTitre=debutTitre
- self.editor.appliEficas.setWindowTitle(nouveauTitre)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.afficheAlpha)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.afficheGroupe)
- self.editor.labelCommentaire.setText("")
- self.affiche_alpha=self.editor.affiche_alpha
- self.name=None
- self.AjouteRadioButton()
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.AjouteRadioButton)
-
- def afficheAlpha(self):
- self.affiche_alpha=1
- self.editor.affiche_alpha=1
- self.AjouteRadioButton()
-
- def afficheGroupe(self):
- self.affiche_alpha=0
- self.editor.affiche_alpha=0
- self.AjouteRadioButton()
-
- def bFormulaireReturnPressed(self):
- print "PNPNPNPN a Programmer"
- self.connect(self.bFormulaire,SIGNAL("clicked()"),self.bFormulaireReturnPressed)
-
- def mouseDoubleClickEvent(self,event):
- nodeCourrant=self.node.tree.currentItem()
- if nodeCourrant==None: nodeCourrant=self.node.tree.racine
- if self.name != None :
- if nodeCourrant==self.node : self.node.append_child(self.name,'first')
- else : nodeCourrant.append_brother(self.name)
-
- def CreeListeCommande(self,filtre):
- listeGroupes,dictGroupes=self.jdc.get_groups()
- if "CACHE" in dictGroupes.keys():
- aExclure=dictGroupes["CACHE"]
- else:
- aExclure=()
- listeACreer=[]
- for l in self.jdc.get_liste_cmd():
- if l not in aExclure :
- if filtre != None and not filtre in l : continue
- listeACreer.append(l)
- return listeACreer
-
- def AjouteRadioButton(self):
- filtre=str(self.LEFiltre.text())
- if filtre==str("") : filtre=None
- if hasattr(self,'buttonGroup') :
- for b in self.buttonGroup.buttons():
- self.buttonGroup.removeButton(b)
- b.close()
- else :
- self.buttonGroup = QButtonGroup()
- for w in self.listeWidget :
- w.close()
- self.listeWidget=[]
- if self.affiche_alpha==1 :
- liste=self.CreeListeCommande(filtre)
- for cmd in liste :
- rbcmd=(QRadioButton(tr(cmd)))
- self.buttonGroup.addButton(rbcmd)
- self.commandesLayout.addWidget(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent
- self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique)
- else :
- listeGroupes,dictGroupes=self.jdc.get_groups()
- for grp in listeGroupes:
- if grp == "CACHE" : continue
- label=QLabel(self)
- text=QString.fromUtf8('
Groupe : '+tr(grp)+'
') - label.setText(text) - self.listeWidget.append(label) - aAjouter=1 - for cmd in dictGroupes[grp]: - if filtre != None and not filtre in cmd : continue - if aAjouter == 1 : - self.commandesLayout.addWidget(label) - aAjouter=0 - rbcmd=(QRadioButton(tr(cmd))) - self.buttonGroup.addButton(rbcmd) - self.commandesLayout.addWidget(rbcmd) - rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent - self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique) - label2=QLabel(self) - label2.setText(" ") - self.listeWidget.append(label2) - self.commandesLayout.addWidget(label2) - - - def LEfiltreReturnPressed(self): - self.AjouteRadioButton(filtre) - - - def rbClique(self,id): - self.name=str(id.text().toLatin1()) - definitionEtape=getattr(self.jdc.cata[0],self.name) - commentaire=getattr(definitionEtape,self.jdc.lang) - try : - commentaire=getattr(definitionEtape,self.jdc.lang) - except : +class MonChoixCommande(Ui_ChoixCommandes,QWidget): + """ + """ + def __init__(self,node, jdc_item, editor): + QWidget.__init__(self,parent=None) + self.setupUi(self) + + self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons') + iconeFile=os.path.join(self.repIcon,'lettreRblanc30.png') + icon = QIcon(iconeFile) + self.RBRegle.setIcon(icon) + self.RBRegle.setIconSize(QSize(21, 31)) + + self.item = jdc_item + self.node = node + self.editor = editor + self.simpleClic=self.editor.maConfiguration.simpleClic + self.jdc = self.item.object.getJdcRoot() + debutTitre=self.editor.titre + self.listeWidget=[] + self.dicoCmd={} + if self.editor.fichier != None : + nouveauTitre=debutTitre+" "+os.path.basename(self.editor.fichier) + else : + nouveauTitre=debutTitre + self.editor.appliEficas.setWindowTitle(nouveauTitre) + + + self.RBalpha.clicked.connect(self.afficheAlpha) + self.RBGroupe.clicked.connect(self.afficheGroupe) + self.RBOrdre.clicked.connect(self.afficheOrdre) + self.RBClear.clicked.connect(self.clearFiltre) + self.RBCasse.toggled.connect(self.ajouteRadioButtons) + self.LEFiltre.returnPressed.connect(self.ajouteRadioButtons) + self.LEFiltre.textChanged.connect(self.ajouteRadioButtons) + + if self.node.tree.item.getRegles() == () : + self.RBRegle.close() + self.labelRegle.close() + else : + self.RBRegle.clicked.connect(self.afficheRegle) + + if self.editor.readercata.Ordre_Des_Commandes == None : self.RBOrdre.close() + + + #self.editor.labelCommentaire.setText("") + if self.editor.widgetOptionnel!= None : + self.editor.fermeOptionnel() + self.editor.widgetOptionnel=None + self.name=None + + self.boolAlpha=0 + self.boolGroupe=0 + self.boolOrdre=0 + if self.editor.maConfiguration.affiche=="alpha" : + self.boolAlpha==1; + self.RBalpha.setChecked(True); + self.afficheAlpha() + elif self.editor.maConfiguration.affiche=="groupe" : + self.boolGroupe==1; + self.RBGroupe.setChecked(True); + self.afficheGroupe() + elif self.editor.maConfiguration.affiche=="ordre" : + self.boolOrdre==1; + self.RBOrdre.setChecked(True); + self.afficheOrdre() + if self.editor.maConfiguration.closeFrameRechercheCommandeSurPageDesCommandes == True : self.frameAffichage.close() + + if self.editor.widgetTree != None : self.editor.restoreSplitterSizes(2) + else: self.editor.restoreSplitterSizes(3) + + def afficheRegle(self): + self.node.tree.appellebuildLBRegles() + + def afficheAlpha(self): + self.boolAlpha=1 + self.boolGroupe=0 + self.boolOrdre=0 + self.ajouteRadioButtons() + + def afficheGroupe(self): + self.boolAlpha=0 + self.boolGroupe=1 + self.boolOrdre=0 + self.ajouteRadioButtons() + + def afficheOrdre(self): + self.boolAlpha=0 + self.boolGroupe=0 + self.boolOrdre=1 + self.ajouteRadioButtons() + + def insereNoeudApresClick(self,event): + #print self.editor.Classement_Commandes_Ds_Arbre + #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu() + #print ('dans insereNoeudApresClick') + nodeCourrant=self.node.tree.currentItem() + if nodeCourrant==None: nodeCourrant=self.node.tree.racine + if self.name != None : + plier=self.editor.maConfiguration.afficheCommandesPliees + if nodeCourrant==self.node : nouveau=self.node.appendChild(self.name,'first',plier) + else : nouveau=nodeCourrant.appendBrother(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() + if self.editor.afficheApresInsert == True : + #if self.editor.affichePlie==True: nouveau.plieToutEtReaffiche() + if self.editor.maConfiguration.afficheCommandesPliees ==True: nouveau.plieToutEtReaffiche() + else : nouveau.deplieToutEtReaffiche() + nouveau.fenetre.donnePremier() + #nouveau.deplieToutEtReaffiche() + else : + self.node.setSelected(False) + nouveau.setSelected(True) + self.node.tree.setCurrentItem(nouveau) + if event != None : event.accept() + + + + def creeListeCommande(self,filtre): + listeGroupes,dictGroupes=self.jdc.getGroups() + sensibleALaCasse=self.RBCasse.isChecked() + if "CACHE" in dictGroupes: aExclure=list(dictGroupes["CACHE"]) + else: aExclure=[] + listeACreer=[] + listeEtapesDejaPresentes=[] + if self.editor.maConfiguration.rendVisiblesLesCaches : + for e in self.jdc.etapes: + listeEtapesDejaPresentes.append(e.nom) + for c in aExclure : + if c not in listeEtapesDejaPresentes : aExclure.remove(c) + #for e in self.jdc.etapes: + # print (e.nom) + # print (e.definition.repetable) + # if e.definition.repetable == 'n' : aExclure.append(e.nom) + #print (aExclure) + for l in self.jdc.getListeCmd(): + if l not in aExclure : + if sensibleALaCasse and (filtre != None and not filtre in l) : continue + if (not sensibleALaCasse) and filtre != None and (not filtre in l) and (not filtre.upper() in l) : continue + listeACreer.append(l) + return listeACreer + + def ajouteRadioButtons(self): + if self.editor.maConfiguration.nombreDeBoutonParLigne != 0 : + self.ajoutePushButtons() + return + #print 'ds ajouteRadioButtons' + filtre=str(self.LEFiltre.text()) + if filtre==str("") : filtre=None + if hasattr(self,'buttonGroup') : + for b in self.buttonGroup.buttons(): + self.buttonGroup.removeButton(b) + b.setParent(None) + b.close() + else : + self.buttonGroup = QButtonGroup() + for w in self.listeWidget : + w.setParent(None) + w.close() + self.listeWidget=[] + if self.boolAlpha==1 : + liste=self.creeListeCommande(filtre) + for cmd in liste : + self.dicoCmd[tr(cmd)]=cmd + rbcmd=(QRadioButton(tr(cmd))) + self.buttonGroup.addButton(rbcmd) + self.commandesLayout.addWidget(rbcmd) + #if self.simpleClic : rbcmd.mouseReleaseEvent=self.insereNoeudApresClick + #else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick + #self.buttonGroup.buttonClicked.connect(self.rbClique) + if not(self.simpleClic ): rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick + if self.simpleClic : + self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) + else : + self.buttonGroup.buttonClicked.connect(self.rbClique) + elif self.boolGroupe==1 : + listeGroupes,dictGroupes=self.jdc.getGroups() + for grp in listeGroupes: + if grp == "CACHE" : continue + label=QLabel(self) + text=tr('Groupe : '+tr(grp)+'
') + label.setText(text) + self.listeWidget.append(label) + aAjouter=1 + sensibleALaCasse=self.RBCasse.isChecked() + for cmd in dictGroupes[grp]: + if sensibleALaCasse and (filtre != None and not filtre in cmd) : continue + if (not sensibleALaCasse) and filtre != None and (not filtre in cmd) and (not filtre.upper() in cmd) : continue + if aAjouter == 1 : + self.commandesLayout.addWidget(label) + aAjouter=0 + self.dicoCmd[tr(cmd)]=cmd + rbcmd=(QRadioButton(tr(cmd))) + self.buttonGroup.addButton(rbcmd) + self.commandesLayout.addWidget(rbcmd) + if not(self.simpleClic ): rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick + if self.simpleClic : + self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) + else : + self.buttonGroup.buttonClicked.connect(self.rbClique) + label2=QLabel(self) + label2.setText(" ") + self.listeWidget.append(label2) + self.commandesLayout.addWidget(label2) + elif self.boolOrdre==1 : + listeFiltre=self.creeListeCommande(filtre) + liste=[] + if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre + else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes + for cmd in Ordre_Des_Commandes : + if cmd in listeFiltre : + liste.append(cmd) + for cmd in liste : + self.dicoCmd[tr(cmd)]=cmd + rbcmd=(QRadioButton(tr(cmd))) + self.buttonGroup.addButton(rbcmd) + self.commandesLayout.addWidget(rbcmd) + if not(self.simpleClic ): rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick + if self.simpleClic : + self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) + else : + self.buttonGroup.buttonClicked.connect(self.rbClique) + + + + def ajoutePushButtons(self): + if hasattr(self,'buttonGroup') : + for b in self.buttonGroup.buttons(): + self.buttonGroup.removeButton(b) + b.setParent(None) + b.close() + else : + self.buttonGroup = QButtonGroup() + self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) + for w in self.listeWidget : + w.setParent(None) + w.close() + self.listeWidget=[] + + if not hasattr(self,'maGrilleBouton') : + #self.commandesLayout.close() + self.maGrilleBouton=QGridLayout() + self.maGrilleBouton.setSpacing(20) + self.verticalLayout.addLayout(self.maGrilleBouton) + col=-1 + ligne = 0 + + if self.boolAlpha==1 : + liste=self.creeListeCommande(None) + elif self.boolOrdre: + liste=self.creeListeCommande(None) + listeFiltre=self.creeListeCommande(None) + liste=[] + if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre + else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes + for cmd in Ordre_Des_Commandes : + if cmd in listeFiltre : + liste.append(cmd) + for cmd in liste : + col=col+1 + if col == self.editor.maConfiguration.nombreDeBoutonParLigne : + col=0 + ligne=ligne+1 + self.dicoCmd[tr(cmd)]=cmd + rbcmd=QPushButton(tr(cmd)) + rbcmd.setGeometry(QRect(40, 20, 211, 71)) + rbcmd.setMaximumSize(QSize(250, 81)) + rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n" +"/*border-style : outset;*/\n" +"border-radius : 20px;\n" +"border-width : 30 px;\n" +"border-color : beige;\n" +"text-align : center") + #print ('self.editor.maConfiguration.dicoImages', self.editor.maConfiguration.dicoImages) + if cmd in self.editor.maConfiguration.dicoImages : + fichier=self.editor.maConfiguration.dicoImages[cmd] + icon = QIcon() + icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off) + rbcmd.setIcon(icon) + rbcmd.setIconSize(QSize(48, 48)) + + self.buttonGroup.addButton(rbcmd) + self.maGrilleBouton.addWidget(rbcmd,ligne,col) + + def clearFiltre(self): + self.LEFiltre.setText("") + self.ajouteRadioButtons() + + def rbCliqueEtInsere(self,id): + self.rbClique(id) + self.insereNoeudApresClick(None) + + def rbClique(self,id): + + try : + self.name=self.dicoCmd[id.text()] + except : + try : + self.name=self.dicoCmd[str(id.text())] + except : + print ('pb d accent : contacter la maintenance') + + definitionEtape=getattr(self.jdc.cata,self.name) + #commentaire=getattr(definitionEtape,self.jdc.lang) try : - commentaire=getattr(definitionEtape,"ang") + commentaire=getattr(definitionEtape,self.jdc.lang) except : - commentaire="" - self.editor.labelCommentaire.setText(commentaire) + try : + commentaire=getattr(definitionEtape,"ang") + except : + commentaire="" + self.editor.afficheCommentaire(commentaire) - def bOkPressed(self): - if self.name==None : - QMessageBox.critical(None, tr("Commande non choisie "), - tr("Vous devez choisir une commande") ) - return - #new_node = self.node.append_child(self.name,'first') - self.node.tree.choisitPremier(self.name) - def setValide(self): - #PNPN a priori pas d icone mais peut-etre a faire - pass + def setValide(self): + #PNPN a priori pas d icone mais peut-etre a faire + pass