1 # Copyright (C) 2007-2017 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 __future__ import absolute_import
23 from PyQt5.QtWidgets import QCheckBox, QWidget, QLabel, QPushButton
24 from PyQt5.QtCore import Qt, QRect
25 from PyQt5.QtGui import QPalette
27 from Extensions.i18n import tr
28 from desGroupeOptionnel import Ui_groupeOptionnel
29 from desPBOptionnelMT import Ui_customPB
34 class MonRBButtonCustom(QCheckBox):
36 def __init__(self,texte,monOptionnel,parent=None,couleur=None):
37 QCheckBox.__init__(self,tr(texte),parent)
38 self.mousePressed=True
39 self.monOptionnel=monOptionnel
40 self.setToolTip(tr("clicker: affichage aide, double-click: ajout"))
42 mapalette=self.palette()
43 mapalette.setColor( QPalette.WindowText, couleur )
44 mapalette.setColor( QPalette.Base, Qt.green )
45 self.setPalette( mapalette );
46 self.setText(tr(texte))
48 monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
49 self.setToolTip(monToolTip)
54 def mouseDoubleClickEvent(self, event):
55 #print "dans mouseDoubleClickEvent", self
56 if self not in self.monOptionnel.dicoCb:
59 listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
60 self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
64 def mousePressEvent(self, event):
65 if not( event.button() != Qt.RightButton) :
68 if self.monOptionnel.cbPressed != None :
69 self.monOptionnel.cbPressed.setChecked(False)
70 self.monOptionnel.cbPressed=self
71 if self.mousePressed == False :
72 self.mousePressed=True
74 self.mousePressed=False
76 QCheckBox.mousePressEvent(self, event)
79 def ajoutAideMC(self):
81 maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
82 maLangue = self.monOptionnel.parentMC.jdc.lang
83 if hasattr(maDefinition,maLangue):
84 self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
89 self.monOptionnel.parentMC.editor.afficheCommentaire(self.monAide)
91 class MonPBButtonCustom(QWidget,Ui_customPB):
93 def __init__(self,texte,monOptionnel,parent=None,couleur=None):
94 QWidget.__init__(self)
97 self.monPb.setText(texte)
98 self.monPb.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')
99 #mapalette=self.monPb.palette()
100 #mapalette.setColor( QPalette.ButtonText, Qt.red )
101 #self.monPb.setPalette( mapalette )
105 monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
106 self.monPb.setToolTip(monToolTip)
109 self.monPb.setText(texte)
110 self.monPb.clicked.connect(self.ajoutMC)
113 self.monOptionnel=monOptionnel
115 self.setToolTip(self.monAide)
118 listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
119 self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
121 def definitAideMC(self):
123 maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
124 maLangue = self.monOptionnel.parentMC.jdc.lang
125 if hasattr(maDefinition,maLangue):
126 self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
130 class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
133 def __init__(self,liste,liste_rouge,parentQt,parentMC):
134 #print ("dans init de monWidgetOptionnel ", parentQt, liste,parentMC)
135 QWidget.__init__(self,None)
139 self.mousePressed=False
142 self.parentQt=parentQt
143 self.parentMC=parentMC
147 self.affiche(liste,liste_rouge)
149 elif self.parentQt.parentQt.maConfiguration.afficheOptionnelVide != False :
151 self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
153 self.frameLabelMC.close()
154 #print "dans fin de monWidgetOptionnel ", parentQt
157 def afficheTitre(self):
158 labeltext,fonte,couleur = self.parentMC.node.item.getLabelText()
167 for l in li : texte+=l+"\n"
169 self.MCLabel.setText(texte)
171 def affiche(self,liste,liste_rouge):
172 #print ("dans Optionnel ____ affiche", liste,liste_rouge)
176 #if mot in liste_rouge : print ('je dois afficher en rouge' , mot)
178 if mot in liste_rouge : couleur=Qt.red
179 if self.parentQt.parentQt.maConfiguration.simpleClic == False :
180 cb = MonRBButtonCustom(mot,self,couleur=couleur)
181 cb.clicked.connect(cb.ajoutAideMC)
183 cb = MonPBButtonCustom(mot,self,couleur=couleur)
185 self.MCOptionnelLayout.insertWidget(0,cb)
187 self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)