Salome HOME
Merge V9 dans Master
[tools/eficas.git] / InterfaceQT4 / monWidgetOptionnel.py
index 510321d60ac6043cc3503b8b6df5aefbee5b36b0..904e5841a9f19c780a0f37d74406aeca9ad9923f 100644 (file)
@@ -1,4 +1,4 @@
-# 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,texte,parent)
-      self.monOptionnel=monOptionnel
-
-   def mouseDoubleClickEvent(self, event):
-      #print "dans mouseDoubleClickEvent"
-      if self not in self.monOptionnel.dicoCb.keys() : return
-      listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
-      self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
-      self.setChecked(False)
-
-   def mousePressEvent(self, event):
-      #print "dans mousePressEvent"
-      self.mousePressed=True
-      if not( event.button() != Qt.RightButton)  : return
-      QCheckBox.mousePressEvent(self, event)
-
-
-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)
 
-     
+  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 affiche(self,liste):
-     #print "dans Optionnel ____ affiche", liste
-     self.show()
-     labeltext,fonte,couleur = self.parentMC.node.item.GetLabelText()
-     l=labeltext
+  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])
@@ -79,34 +91,3 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
      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 detruit', self.dicoCb[cb], cb
-         cb.close()
-     #print self.commandesOptionnellesLayout.children()
-     self.dicoCb={}
-     liste.reverse()
-     for mot in liste :
-         cb = monButtonCustom(QString(mot),self)
-         #print "j ajoute ", mot, cb
-         self.dicoCb[cb]=mot
-         self.commandesOptionnellesLayout.insertWidget(0,cb)
-
-  def CBChecked(self):
-      # ordre ?
-      #print "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
-      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)
-