-# Copyright (C) 2007-2013 EDF R&D
+# Copyright (C) 2007-2017 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
# Modules Python
# Modules Eficas
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
+from __future__ import absolute_import
+from PyQt5.QtWidgets import QCheckBox, QWidget
+from PyQt5.QtCore import Qt
+
from Extensions.i18n import tr
from desWidgetOptionnel import Ui_WidgetOptionnel
+from .monGroupeOptionnel import MonGroupeOptionnel
# Import des panels
-
-class monButtonCustom(QCheckBox):
-
- def __init__(self,texte,monOptionnel,parent=None):
- QCheckBox.__init__(self,QString(tr(texte)),parent)
- self.texte=texte
- self.monOptionnel=monOptionnel
-
- def mouseDoubleClickEvent(self, event):
- #print "dans mouseDoubleClickEvent", self
- if self not in self.monOptionnel.dicoCb.keys() :
- event.accept()
- return
- listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
- self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
- self.setChecked(False)
- event.accept()
-
-
- def mousePressEvent(self, event):
- #print "dans mousePressEvent"
- self.mousePressed=True
- if not( event.button() != Qt.RightButton) :
- event.accept()
- return
- QCheckBox.mousePressEvent(self, event)
- event.accept()
-
-
-class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
- """
- """
+class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
def __init__(self,parentQt):
- #print "dans init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom
+ #print ("dans init de monWidgetOptionnel ", parentQt )
QWidget.__init__(self,None)
self.setupUi(self)
- self.dicoCb={}
- self.parentMC=None
- self.listeChecked=[]
- self.mousePressed=False
- self.cbPressed=None
- self.cb=None
+ self.dicoMCWidgetOptionnel={}
self.parentQt=parentQt
- #self.connect(self.bAjoutMC,SIGNAL("clicked()"), self.ajoutMC)
- #print "fin init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom
-
-
-
- def affiche(self,liste):
- print "dans Optionnel ____ affiche", liste
- self.show()
- labeltext,fonte,couleur = self.parentMC.node.item.GetLabelText()
- l=labeltext
+ def afficheOptionnel(self,liste,liste_rouge,MC):
+ #print ('afficheOptionnel MonWidgetOptionnel', self,liste,MC)
+ self.vireLesAutres(MC)
+
+ if MC.node.item.nom in self.dicoMCWidgetOptionnel :
+ #print (MC.node.item.nom)
+ self.dicoMCWidgetOptionnel[MC.node.item.nom].close()
+ self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
+ self.dicoMCWidgetOptionnel[MC.node.item.nom].deleteLater()
+ del self.dicoMCWidgetOptionnel[MC.node.item.nom]
+ if liste==[] : return
+ groupe = MonGroupeOptionnel(liste,liste_rouge,self,MC)
+ self.groupesOptionnelsLayout.insertWidget(0,groupe)
+ self.dicoMCWidgetOptionnel[MC.node.item.nom]=groupe
+ return groupe
+
+ def vireLesAutres(self,MC):
+ #print( "je passe dans vireLesAutres")
+ genea =MC.obj.getGenealogie()
+ #print (genea)
+ for k in list(self.dicoMCWidgetOptionnel.keys()):
+ #print (k)
+ #if k not in genea : print ( k)
+ if k not in genea :
+ self.dicoMCWidgetOptionnel[k].close()
+ del self.dicoMCWidgetOptionnel[k]
+ #print( "fin vireLesAutres")
+
+ def vireTous(self):
+ for k in list(self.dicoMCWidgetOptionnel.keys()):
+ self.dicoMCWidgetOptionnel[k].close()
+ del self.dicoMCWidgetOptionnel[k]
+
+ def afficheOptionnelVide(self):
+ self.GeneaLabel.setText("")
+ for k in list(self.dicoMCWidgetOptionnel.keys()):
+ self.dicoMCWidgetOptionnel[k].close()
+ del self.dicoMCWidgetOptionnel[k]
+
+ def titre(self,MC):
+ if self.parentCommande.node.editor.code in ['Adao','ADAO'] and self.parentCommande.node.editor.maConfiguration.closeFrameRechercheCommande==True :
+ self.frameLabelCommande.close()
+ return
+ labeltext,fonte,couleur = self.parentCommande.node.item.getLabelText()
+ l=tr(labeltext)
li=[]
while len(l) > 25:
li.append(l[0:24])
for l in li : texte+=l+"\n"
texte=texte[0:-2]
self.GeneaLabel.setText(tr("Options pour \n") +texte)
-
- for cb in self.dicoCb.keys():
- #print 'je detruis', self.dicoCb[cb], cb
- #print cb.close()
- cb.close()
-
- self.dicoCb={}
- liste.reverse()
- for mot in liste :
- cb = monButtonCustom(mot,self)
- #print "j ajoute ", mot, cb
- self.dicoCb[cb]=mot
- self.commandesOptionnellesLayout.insertWidget(0,cb)
- self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)
- print "Fin Optionnel ____ affiche", liste
-
- def CBChecked(self):
- # ordre ?
- return
- for cb in self.dicoCb.keys() :
- if cb.isChecked() and self.dicoCb[cb] not in self.listeChecked : self.listeChecked.append(self.dicoCb[cb])
- if not(cb.isChecked()) and self.dicoCb[cb] in self.listeChecked : self.listeChecked.remove(self.dicoCb[cb])
- self.parentMC.recalculeListeMC(self.listeChecked)
-
-
- def ajoutMC(self):
- maListe=""
- for cb in self.dicoCb.keys():
- if cb.isChecked() : maListe+="+"+str(cb.text())
- if maListe=="":return
- #print "dans Optionnel __ ajout de ", maListe
- self.parentMC.ajoutMC(maListe)
-
- def hide(self):
- self.parentQt.editor.saveSplitterSizes()
- QWidget.hide(self)