1 # Copyright (C) 2007-2021 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
20 from __future__ import absolute_import
21 from PyQt5.QtCore import Qt, QTimer
22 from PyQt5.QtWidgets import QWidget
27 from .groupe import Groupe
28 from desWidgetFact import Ui_WidgetFact
29 from desWidgetFactTableau import Ui_WidgetFactTableau
30 from Extensions.i18n import tr
33 class MonWidgetFactCommun(Groupe):
36 def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=-1):
37 #print "fact : ",node.item.nom
38 Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
39 labeltext,fonte,couleur = self.node.item.getLabelText()
40 self.GroupBox.setText(tr(labeltext))
41 self.GroupBox.setTextInteractionFlags(Qt.TextSelectableByMouse)
42 self.parentQt.commandesLayout.insertWidget(insertIn,self)
43 self.doitAfficherOptionnel=False
44 min,max=obj.getMinMax()
45 if max < 2 and hasattr(self, 'RBPlus') : self.RBPlus.close()
46 if max > 1 and hasattr(self, 'RBPlus') : self.RBPlus.clicked.connect(self.ajouteMCParPB)
48 def enterEvent(self,event):
49 #print "enterEvent ", self.node.item.getLabelText()[0]
50 self.doitAfficherOptionnel=True
51 QWidget.enterEvent(self,event)
52 QTimer.singleShot(500, self.delayAffiche)
54 def leaveEvent(self,event):
55 #print "leaveEvent", self.node.item.getLabelText()[0]
56 self.doitAfficherOptionnel=False
57 QWidget.leaveEvent(self,event)
59 def delayAffiche(self):
60 #print "delayAffiche, self.doitAfficherOptionnel = ", self.doitAfficherOptionnel
61 if self.doitAfficherOptionnel and self.editor.code != "CARMELCND" :self.afficheOptionnel()
63 def ajouteMCParPB(self):
64 texteListeNom="+"+self.obj.nom
65 parentOuAjouter=self.parentQt
66 from .monWidgetBloc import MonWidgetBloc
67 while (parentOuAjouter and isinstance(parentOuAjouter, MonWidgetBloc)) :
68 parentOuAjouter=parentOuAjouter.parentQt
69 parentOuAjouter.ajoutMC(texteListeNom)
72 class MonWidgetFact(Ui_WidgetFact,MonWidgetFactCommun):
73 def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
74 MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
76 #class MonWidgetFactTableau(Ui_WidgetFactTableau,MonWidgetFactCommun):
77 class MonWidgetFactTableau(Ui_WidgetFact,MonWidgetFactCommun):
78 def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
79 MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
80 #print ('je passe dans FactTableau')
81 MonWidgetFactTableau.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)