]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT4/monWidgetNiveauFact.py
Salome HOME
chgt Copyrigth
[tools/eficas.git] / InterfaceQT4 / monWidgetNiveauFact.py
1 # Copyright (C) 2007-2021   EDF R&D
2 #
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.
7 #
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.
12 #
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
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19 # Modules Python
20 # Modules Eficas
21
22 from __future__ import absolute_import
23 try :
24    from builtins import str
25 except : pass
26
27 import types
28
29 from desWidgetNiveauFact import Ui_WidgetNiveauFact
30 from InterfaceQT4.monWidgetOptionnel import MonWidgetOptionnel
31 from InterfaceQT4.groupe import Groupe
32
33 from PyQt5.QtWidgets  import  QWidget
34 from PyQt5.QtGui  import  QIcon
35
36
37 from Extensions.i18n import tr
38 import Accas 
39 import os
40
41     
42 # Import des panels
43
44 class MonWidgetNiveauFact(Ui_WidgetNiveauFact,Groupe):
45   """
46   """
47   def __init__(self,node,editor,definition,obj):
48       self.listeAffichageWidget=[]
49       self.listeBoutonAChanger=[]
50       Groupe.__init__(self,node,editor,None,definition,obj,1,self)
51       from InterfaceQT4 import composimp
52       if isinstance(self.node ,composimp.Node):
53          widget=self.node.getPanelGroupe(self,self.maCommande)
54          self.listeBoutonAChanger.append(widget.RBValide)
55       self.afficheOptionnel()
56       self.inhibe=False
57       self.labelDoc.setText(self.node.item.getFr())
58       self.labelNomCommande.setText(self.node.item.getLabelText()[0])
59
60   def reaffiche(self,nodeAVoir=None):
61       self.node.setDeplieChildren()
62       self.node.afficheCeNiveau()
63       self.editor.fenetreCentraleAffichee.labelDoc.setText(self.node.item.getFr())
64       self.editor.fenetreCentraleAffichee.labelNomCommande.setText(self.node.item.getLabelText()[0])
65
66   def getPanel(self):
67   # necessaire pour handleOnItem de browser.py
68   # non appele
69       pass 
70
71   def donnePremier(self):
72       #print "dans donnePremier"
73       QApplication.processEvents()
74       if self.listeAffichageWidget != [] :
75          self.listeAffichageWidget[0].setFocus(7)
76       QApplication.processEvents()
77       #print self.focusWidget()
78
79
80   def focusNextPrevChild(self, next):
81       # on s assure que ce n est pas un chgt de fenetre
82       #print "je passe dans focusNextPrevChild"
83       if self.editor.fenetreCentraleAffichee != self : return True
84       f=self.focusWidget()
85
86       if f not in self.listeAffichageWidget :
87          i=0
88          while not hasattr (f,'AAfficher') :
89            if f==None :i=-1; break
90            f=f.parentWidget()
91          if hasattr(f,'AAfficher') : f=f.AAfficher
92          if i != -1 : i=self.listeAffichageWidget.index(f)
93       else :i=self.listeAffichageWidget.index(f) 
94       if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe: 
95          try :
96            self.listeAffichageWidget[1].setFocus(7)
97            w=self.focusWidget()
98            self.inhibe=1
99            w.focusPreviousChild()
100            self.inhibe=0
101            return True
102          except : pass
103
104       if i==0 and next==False and not self.inhibe: 
105          if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
106             self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
107          self.listeAffichageWidget[-2].setFocus(7)
108          self.inhibe=1
109          w=self.focusWidget()
110          w.focusNextChild()
111          self.inhibe=0
112          return True
113
114       if i==0 and next==True and not self.inhibe:
115          self.listeAffichageWidget[0].setFocus(7)
116          self.inhibe=1
117          w=self.focusWidget()
118          w.focusNextChild()
119          self.inhibe=0
120          return True
121
122       if i>0 and next==False and not self.inhibe:
123          if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
124            self.listeAffichageWidget[i-1].setFocus(7)
125            return True
126       return QWidget.focusNextPrevChild(self, next)
127
128   def etablitOrdre(self):
129       # si on boucle on perd l'ordre
130       i=0
131       while(i +1 < len(self.listeAffichageWidget)):
132          self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
133          i=i+1
134
135   def  afficheSuivant(self,f):
136       #print ('ds afficheSuivant')
137       try :
138         i=self.listeAffichageWidget.index(f) 
139         next=i+1
140       except :
141         next=1
142       if (next==len(self.listeAffichageWidget) ): next =0
143       try :
144         self.listeAffichageWidget[next].setFocus(7)
145       except :
146         pass
147
148
149   def afficheOptionnel(self):
150       # N a pas de parentQt. doit donc etre redefini
151       #print ('ds afficheOptionnel')
152       if self.editor.maConfiguration.closeOptionnel : return
153       if self.editor.widgetOptionnel!= None :
154         self.monOptionnel=self.editor.widgetOptionnel
155       else :
156         self.editor.inhibeSplitter=1
157         self.monOptionnel=MonWidgetOptionnel(self.editor)
158         self.editor.widgetOptionnel=self.monOptionnel
159         self.editor.splitter.addWidget(self.monOptionnel)
160         self.editor.ajoutOptionnel()
161         self.editor.inhibeSplitter=0
162       self.monOptionnel.vireTous()
163
164       
165       liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
166       self.monOptionnel.parentCommande=self
167       self.monOptionnel.titre(self.obj.nom)
168       self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
169       
170   def setValide(self):
171      Groupe.setValide(self)
172      for bouton in self.listeBoutonAChanger:
173          couleur=self.node.item.getIconName()
174          monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
175          bouton.setIcon(monIcone)
176
177 class MonWidgetNiveauFactTableau(MonWidgetNiveauFact):
178   def __init__(self,node,editor,definition,obj):
179       MonWidgetNiveauFact.__init__(self,node,editor,definition,obj)
180
181