Salome HOME
sauve du 9 mai
[tools/eficas.git] / InterfaceQT4 / monWidgetPlusieursInto.py
index 5678b5a8997ad183aa691fe433045f8338f65193..ca31a0b546e82acb51ae53a9564546c1cf35ffaa 100644 (file)
 import string,types,os
 
 # Modules Eficas
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
+from determine import monEnvQT5
+if monEnvQT5:
+    from PyQt5.QtWidgets  import QCheckBox, QScrollBar, QFrame, QApplication
+    from PyQt5.QtCore import Qt
+else :
+    from PyQt4.QtGui  import *
+    from PyQt4.QtCore import *
+
 from Extensions.i18n import tr
 
 from feuille                import Feuille
 from desWidgetPlusieursInto import Ui_WidgetPlusieursInto 
 from politiquesValidation   import PolitiquePlusieurs
 from qtSaisie               import SaisieValeur
-#from gereListe              import GereListe
+from gereListe              import GerePlie
 
-class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
+class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        print "MonWidgetPlusieursInto", nom, self
+        #print "MonWidgetPlusieursInto", nom, self
         self.index=1
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
         self.parentQt.commandesLayout.insertWidget(-1,self)
-        self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.change)
+        #if len(self.listeValeursCourantes) == len(self.monSimpDef.into) : self.CBCheck.setChecked(False)
+        #else : self.CBCheck.setChecked(True)
+        if monEnvQT5 : self.CBCheck.stateChanged.connect(self.change)
+        else         : self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.change)
+        self.gereIconePlier()
+        self.inhibe=False
+        self.finCommentaireListe()
         # try except si la liste des possibles est vide
         # prevoir qqchose
         try :
@@ -49,17 +61,22 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
 
 
   def change(self,int):
-       if self.CBCheck.isChecked() : 
+       if self.inhibe:return
+       self.inhibe=True
+       if not(self.CBCheck.isChecked()) : 
           for i in range(len(self.listeAAfficher)):
               nomCB="lineEditVal"+str(i+1)
               courant=getattr(self,nomCB)
               courant.setChecked(True)
+          self.CBCheck.setChecked(False)
        else :
           min,max = self.node.item.GetMinMax()
           for i in range(len(self.listeAAfficher)):
               nomCB="lineEditVal"+str(i+1)
               courant=getattr(self,nomCB)
               courant.setChecked(False)
+          self.CBCheck.setChecked(True)
+       self.inhibe=False
 
   def setValeurs(self):
        self.listeValeursCourantes=self.node.item.GetListeValeurs()
@@ -98,7 +115,8 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
            #if self.monSimpDef.into[i] in self.listeValeursCourantes : 
            if self.listeAAfficher[i] in self.PourEtreCoche : 
               courant.setChecked(True)
-           self.connect(courant,SIGNAL("toggled(bool)"),self.changeValeur)
+           if monEnvQT5 : courant.toggled.connect(self.changeValeur)
+           else :         self.connect(courant,SIGNAL("toggled(bool)"),self.changeValeur)
        self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
        
 
@@ -108,7 +126,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
       if hasattr(self,nomCB) : return
       nouveauCB = QCheckBox(self.scrollArea)
       self.CBLayout.addWidget(nouveauCB)
-      qApp.processEvents()
+      QApplication.processEvents()
       nouveauCB.setText("")
       if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)")
       else :                       nouveauCB.setStyleSheet("background:rgb(240,240,240)")
@@ -118,26 +136,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
       
 
   def finCommentaire(self):
-        commentaire=""
-        mc = self.node.item.get_definition()
-        d_aides = { 'TXM' : 'chaines de caracteres',
-                  'R'   : 'reels',
-                  'I'   : 'entiers',
-                  'C'   : 'complexes'}
-        type = mc.type[0]
-        if not d_aides.has_key(type) :
-           if mc.min == mc.max:
-               commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")
-           else :
-               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")
-        else :
-           if mc.min == mc.max:
-               commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])
-           else :
-               commentaire=tr("Entrez entre ")+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])
-        aideval=self.node.item.aide()
-        commentaire=commentaire + "   " + QString.toUtf8(QString(aideval))
-        return str(commentaire)
+        return self.finCommentaireListe() 
 
   def ajout1Valeur(self,valeur=None):
         #print "________________"
@@ -175,16 +174,17 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
              commentaire=self.ajout1Valeur(valeur)
              if (commentaire != None ):
                  self.editor.affiche_infos(commentaire,Qt.red)
-                 courant.setText("")
       min,max = self.node.item.GetMinMax()
       if len(self.listeValeursCourantes) < min : 
          self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
       elif len(self.listeValeursCourantes) > max : 
          self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
-      else :
-         self.editor.affiche_infos(tr(""))
       if self.listeValeursCourantes== [] : self.listeValeursCourantes=None
       self.node.item.set_valeur(self.listeValeursCourantes)
+      if self.listeValeursCourantes != None and (len(self.listeValeursCourantes) != len(self.monSimpDef.into)) : 
+         self.inhibe=True
+         self.CBCheck.setChecked(True)
+         self.inhibe=False
       self.setValide()
       self.reaffiche()