1 # Copyright (C) 2007-2013 EDF R&D
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 from desChoixCommandes import Ui_ChoixCommandes
24 from PyQt4.QtCore import *
25 from PyQt4.QtGui import *
26 from PyQt4.QtCore import *
27 from Extensions.i18n import tr
33 class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
36 def __init__(self,node, jdc_item, editor):
37 QtGui.QWidget.__init__(self,None)
39 #self.labelIcone.setText('<img src="/local00/home/A96028/Install_EficasV1/KarineEficas/InterfaceQT4/loopOff.png">');
44 self.jdc = self.item.object.get_jdc_root()
45 if self.editor.widgetTree != None:
46 self.connect(self.bFormulaire,SIGNAL("clicked()"),self.bFormulaireReturnPressed)
48 self.bFormulaire.close()
49 debutTitre=self.editor.titre
51 if self.editor.fichier != None :
52 nouveauTitre=debutTitre+" "+str(os.path.basename(self.editor.fichier))
54 nouveauTitre=debutTitre
55 self.editor.appliEficas.setWindowTitle(nouveauTitre)
56 self.connect(self.RBalpha,SIGNAL("clicked()"),self.afficheAlpha)
57 self.connect(self.RBGroupe,SIGNAL("clicked()"),self.afficheGroupe)
58 self.editor.labelCommentaire.setText("")
59 self.affiche_alpha=self.editor.affiche_alpha
61 self.AjouteRadioButton()
62 self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.AjouteRadioButton)
64 def afficheAlpha(self):
66 self.editor.affiche_alpha=1
67 self.AjouteRadioButton()
69 def afficheGroupe(self):
71 self.editor.affiche_alpha=0
72 self.AjouteRadioButton()
74 def bFormulaireReturnPressed(self):
75 print "PNPNPNPN a Programmer"
76 self.connect(self.bFormulaire,SIGNAL("clicked()"),self.bFormulaireReturnPressed)
78 def mouseDoubleClickEvent(self,event):
79 nodeCourrant=self.node.tree.currentItem()
80 if nodeCourrant==None: nodeCourrant=self.node.tree.racine
81 if self.name != None :
82 if nodeCourrant==self.node : self.node.append_child(self.name,'first')
83 else : nodeCourrant.append_brother(self.name)
85 def CreeListeCommande(self,filtre):
86 listeGroupes,dictGroupes=self.jdc.get_groups()
87 if "CACHE" in dictGroupes.keys():
88 aExclure=dictGroupes["CACHE"]
92 for l in self.jdc.get_liste_cmd():
93 if l not in aExclure :
94 if filtre != None and not filtre in l : continue
98 def AjouteRadioButton(self):
99 filtre=str(self.LEFiltre.text())
100 if filtre==str("") : filtre=None
101 if hasattr(self,'buttonGroup') :
102 for b in self.buttonGroup.buttons():
103 self.buttonGroup.removeButton(b)
106 self.buttonGroup = QButtonGroup()
107 for w in self.listeWidget :
110 if self.affiche_alpha==1 :
111 liste=self.CreeListeCommande(filtre)
113 #PNPNPN Possibilite de tr ?
114 rbcmd=(QRadioButton(cmd))
115 self.buttonGroup.addButton(rbcmd)
116 self.commandesLayout.addWidget(rbcmd)
117 rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent
118 self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique)
120 listeGroupes,dictGroupes=self.jdc.get_groups()
121 for grp in listeGroupes:
122 if grp == "CACHE" : continue
124 text=QString.fromUtf8('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+grp+'</span></p></body></html>')
126 self.listeWidget.append(label)
128 for cmd in dictGroupes[grp]:
129 if filtre != None and not filtre in cmd : continue
131 self.commandesLayout.addWidget(label)
133 rbcmd=(QRadioButton(cmd))
134 self.buttonGroup.addButton(rbcmd)
135 self.commandesLayout.addWidget(rbcmd)
136 rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent
137 self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique)
140 self.listeWidget.append(label2)
141 self.commandesLayout.addWidget(label2)
144 def LEfiltreReturnPressed(self):
145 self.AjouteRadioButton(filtre)
148 def rbClique(self,id):
149 self.name=str(id.text().toLatin1())
150 definitionEtape=getattr(self.jdc.cata[0],self.name)
151 commentaire=getattr(definitionEtape,self.jdc.lang)
153 commentaire=getattr(definitionEtape,self.jdc.lang)
156 commentaire=getattr(definitionEtape,"ang")
159 self.editor.labelCommentaire.setText(commentaire)
161 def bOkPressed(self):
163 QMessageBox.critical(None, tr("Commande non choisie "),
164 tr("Vous devez choisir une commande") )
166 #new_node = self.node.append_child(self.name,'first')
167 self.node.tree.choisitPremier(self.name)
171 #PNPN a priori pas d icone mais peut-etre a faire