Salome HOME
:: dans le label
[tools/eficas.git] / InterfaceQT4 / monWidgetPlusieursTuple.py
index d0bad71f20d88758046ce3d1ddc4941950feaa0e..b70a3d73853054b018ce7ab6c575463bcbe1942b 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 # Modules Python
-import string,types,os,sys
+from __future__ import absolute_import
+try :
+   from builtins import str
+   from builtins import range
+   from builtins import object
+except : pass
+
+import types,os,sys
+
+from six.moves import range
+from PyQt5.QtWidgets  import QFrame,QApplication, QFrame, QWidget
+from PyQt5.QtGui  import QIcon
+from PyQt5.QtCore  import QSize, Qt
 
-# Modules Eficas
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
 from Extensions.i18n import tr
 
-from feuille               import Feuille
-from politiquesValidation  import PolitiquePlusieurs
-from qtSaisie              import SaisieValeur
-from gereListe             import GereListe
-from gereListe             import LECustom
+
+from .feuille               import Feuille
+from .politiquesValidation  import PolitiquePlusieurs
+from .qtSaisie              import SaisieValeur
+from .gereListe             import GereListe
+from .gereListe             import LECustom
 from Tuple2                import Ui_Tuple2
 from Tuple3                import Ui_Tuple3
 
 
-class TupleCustom :
+class TupleCustom(object) :
   def __init__(self,tailleTuple,parent,parentQt,index):
       QWidget.__init__(self,parent)
       self.setupUi(self)
@@ -50,7 +60,7 @@ class TupleCustom :
          courant=getattr(self,nomLE)
          courant.num=index
          courant.dansUnTuple=True
-         self.connect(courant,SIGNAL("returnPressed()"),self.valueChange)
+         courant.returnPressed.connect(self.valueChange)
 
 
   def valueChange(self):
@@ -86,8 +96,11 @@ class TupleCustom :
            if str(value[i]) != "" : valeurNulle=False
          except :
            pass
-         
-         courant.setText(str(value[i]))
+
+         try :
+           courant.setText(str(value[i]))
+         except :
+           courant.setText("")
          val=str(courant.text())
          try :
            valeur=eval(val,{})
@@ -117,6 +130,10 @@ class TupleCustom :
          courant=getattr(self,nomLE)
          courant.setText("")
 
+  def finCommentaire(self):
+        return self.finCommentaireListe()
+
+
 class TupleCustom2(QWidget,Ui_Tuple2,TupleCustom):
   def __init__(self,tailleTuple,parent,parentQt,index):
       TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
@@ -136,6 +153,7 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
         self.listeAffichageWidget=[]
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         GereListe.__init__(self)
+        self.finCommentaireListe()
         self.politique=PolitiquePlusieurs(self.node,self.editor)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         if sys.platform[0:5]!="linux":
@@ -151,7 +169,7 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
           icon3 = QIcon(fichier3)
           self.BSelectFichier.setIcon(icon3)
           self.BSelectFichier.setIconSize(QSize(32, 32))
-        self.connect(self.BSelectFichier,SIGNAL("clicked()"), self.selectInFile)
+        self.BSelectFichier.clicked.connect(self.selectInFile)
           
         
 
@@ -204,7 +222,7 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
        for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True)
 
   def rendVisibleLigne(self):
-      qApp.processEvents()
+      QApplication.processEvents()
       self.estVisible.setFocus(True)
       self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
 
@@ -239,20 +257,25 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
           self.listeAffichageWidget[-2].setFocus(True)
       else :
          try :
-           qApp.processEvents()
+           QApplication.processEvents()
            w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1]
            w.setFocus(True)
            self.scrollArea.ensureWidgetVisible(w,0,0)
          except :
            pass
           
-  def AjoutNValeur(self,liste):
+  def ajoutNValeur(self,liste):
         if len(liste)%self.nbValeurs != 0 :
            texte="Nombre incorrect de valeurs"
-           #self.Commentaire.setText(texte)
            self.editor.affiche_infos(tr(texte),Qt.red)
-           return
         i=0
+        min,max=self.node.item.GetMinMax()
+        if self.objSimp.valeur == None : l = len(liste) and self.objSimp.valeur
+        else : l = len(liste)+len(self.objSimp.valeur)
+        if l > max : 
+           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
+           self.editor.affiche_infos(texte,Qt.red)
+           return
         while ( i < len(liste) ) :
             if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
             else : indexDernierRempli=0
@@ -274,13 +297,18 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
                LEARemplir=getattr(self,nomLineEdit) 
                LEARemplir.valueChange()
 
-
   def RBListePush(self):
   # PN a rendre generique avec un truc tel prerempli
       if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
+      if not hasattr(self.editor.readercata.cata[0],'sd_ligne') : self.editor.readercata.cata[0].sd_ligne=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_generateur') : self.editor.readercata.cata[0].sd_generateur=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_transfo') : self.editor.readercata.cata[0].sd_transfo=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_charge') : self.editor.readercata.cata[0].sd_charge=None
+      if not hasattr(self.editor.readercata.cata[0],'sd_moteur') : self.editor.readercata.cata[0].sd_moteur=None
       if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata[0].sd_ligne :
          val=[]
-         for k in self.objSimp.jdc.LineDico.keys() :
+         if  hasattr(self.objSimp.jdc,'LineDico'):
+          for k in self.objSimp.jdc.LineDico :
               try :
                valeur=self.objSimp.jdc.get_concept(k)
                val.append((valeur,0))
@@ -289,7 +317,8 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
          self.node.item.set_valeur(val)
       if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata[0].sd_generateur :
          val=[]
-         for k in self.objSimp.jdc.MachineDico.keys() :
+         if  hasattr(self.objSimp.jdc,'MachineDico'):
+          for k in self.objSimp.jdc.MachineDico :
               try :
                valeur=self.objSimp.jdc.get_concept(k)
                val.append((valeur,0))
@@ -298,7 +327,8 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
          self.node.item.set_valeur(val)
       if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata[0].sd_transfo :
          val=[]
-         for k in self.objSimp.jdc.TransfoDico.keys() :
+         if  hasattr(self.objSimp.jdc,'TransfoDico'):
+          for k in self.objSimp.jdc.TransfoDico :
               try :
                valeur=self.objSimp.jdc.get_concept(k)
                val.append((valeur,0))
@@ -307,7 +337,18 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
          self.node.item.set_valeur(val)
       if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata[0].sd_charge :
          val=[]
-         for k in self.objSimp.jdc.LoadDico.keys() :
+         if  hasattr(self.objSimp.jdc,'LoadDico'):
+          for k in self.objSimp.jdc.LoadDico :
+              try :
+               valeur=self.objSimp.jdc.get_concept(k)
+               val.append((valeur,0))
+              except :
+               pass
+         self.node.item.set_valeur(val)
+      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata[0].sd_moteur :
+         val=[]
+         if  hasattr(self.objSimp.jdc,'MotorDico'):
+          for k in self.objSimp.jdc.MotorDico :
               try :
                valeur=self.objSimp.jdc.get_concept(k)
                val.append((valeur,0))