Salome HOME
Merge V9 dans Master
[tools/eficas.git] / InterfaceQT4 / monWidgetMatrice.py
index dfce842478b18da2f21cca491a71c5371001cc5b..0acfb20951765fdc59b242ff31f829e23eb15401 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# 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
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 # Modules Python
-import string,types,os
+from __future__ import absolute_import
+from __future__ import print_function
+try :
+   from builtins import str
+   from builtins import range
+except : pass
+
+import types,os,sys
 
 # Modules Eficas
-from PyQt4.QtGui     import *
-from PyQt4.QtCore    import *
 from Extensions.i18n import tr
-from feuille         import Feuille
+from .feuille         import Feuille
 
 
 from desWidgetMatrice  import Ui_desWidgetMatrice 
 
+from six.moves import range
+from PyQt5.QtCore import QSize, Qt
+from PyQt5.QtWidgets import QTableWidgetItem
+from PyQt5.QtGui import QIcon
+
 
 class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
 # c est juste la taille des differents widgets de base qui change
@@ -42,23 +52,39 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
         self.nomVariables={}
         self.creeColonnes()
         self.connecterSignaux()
-        if self.node.item.get_valeur()== None:  self.initialSsValeur()
+        if self.node.item.getValeur()== None:  self.initialSsValeur()
         else :
            try    : self.initialValeur()
            except : self.initialSsValeur()
+        if sys.platform[0:5]!="linux" : 
+          repIcon=self.node.editor.appliEficas.repIcon
+          fichier=os.path.join(repIcon, 'update.png')
+          icon = QIcon(fichier)
+          self.PBrefresh.setIcon(icon)
+          self.PBrefresh.setIconSize(QSize(32, 32))
 
 
-  def connecterSignaux(self) :
+
+  def connecterSignauxQT4(self) :
       self.connect(self.TBMatrice,SIGNAL("itemChanged(QTableWidgetItem *)"),self.itemChanged)
       self.connect(self.PBrefresh,SIGNAL("clicked()"), self.afficheEntete)
 
+  def connecterSignaux(self) :
+      self.TBMatrice.itemChanged.connect(self.itemChanged)
+      self.PBrefresh.clicked.connect( self.afficheEntete)
+
   def afficheEntete(self):
       self.objSimp.changeEnteteMatrice()
       self.TBMatrice.clear()
-      if self.node.item.get_valeur()== None:  self.initialSsValeur()
+      if self.node.item.getValeur()== None:  self.initialSsValeur()
       else :
          try    : self.initialValeur()
          except : self.initialSsValeur()
+      self.node.item.object.state='changed'
+      self.node.item.object.parent.state='changed'
+      self.setValide()
+      self.parentQt.setValide()
+      self.node.item.jdc.isValid()
 
 
   def itemChanged(self):
@@ -66,23 +92,29 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
       if monItem==None : return
       texte=monItem.text()
       if texte=="" : return
-      val,ok=texte.toDouble() 
+      #try :
+      if 1 :
+        val=float(str(texte))
+        ok=True
+      #except :
+      else :
+        ok=False
       if ok == False :
-       self.editor.affiche_infos(tr("Entrer un float SVP"),Qt.red)
+       self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
         monItem.setText("")
         return
       if self.monType.valSup != None :
          if val > self.monType.valSup :
-           self.editor.affiche_infos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
+           self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
             monItem.setText("")
             return
       if self.monType.valMin != None :
          if val < self.monType.valMin :
-           self.editor.affiche_infos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
+           self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
             monItem.setText("")
             return
-      self.editor.affiche_infos("")
-      if self.monType.structure != None: apply (MonWidgetMatrice.__dict__[self.monType.structure],(self,))
+      self.editor.afficheInfos("")
+      if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
       self.acceptVal()
 
 
@@ -90,7 +122,7 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
       monItem=self.TBMatrice.currentItem()
       texte=monItem.text()
       if monItem.row() != monItem.column():
-         print monItem.row(), monItem.column()
+         print(monItem.row(), monItem.column())
          monItemSym=self.TBMatrice.item(monItem.column(), monItem.row())
          monItemSym.setText(texte)
 
@@ -98,7 +130,7 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
       if self.monType.methodeCalculTaille != None :
         #try:
          if 1 :
-           apply (MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille],(self,))
+           MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
          else :
          #except :
            QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
@@ -108,10 +140,10 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
          self.nbCols=self.monType.nbCols
 
 
-  def  NbDeVariables(self):
+  def  nbDeVariables(self):
        jdc=self.node.item.object.jdc
        etape=self.node.item.object.etape
-       self.listeVariables=jdc.get_variables(etape)
+       self.listeVariables=jdc.getVariables(etape)
        if self.listeVariables == [] :
            QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
            return
@@ -120,10 +152,10 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
        self.nbLigs=len(self.listeVariables)
        self.nbCols=len(self.listeVariables)
 
-  def  NbDeDistributions(self):
+  def  nNbDeDistributions(self):
        jdc=self.node.item.object.jdc
        etape=self.node.item.object.etape
-       self.listeVariables=jdc.get_distributions(etape)
+       self.listeVariables=jdc.getDistributions(etape)
        if self.listeVariables == [] :
            QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
            return
@@ -140,14 +172,16 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
                else :
                  initialFloat=0
                self.TBMatrice.setItem(row,column,QTableWidgetItem(str(initialFloat)))
-       header=QStringList()
+       #header=QStringList()
+       header=[]
        for var in self.listeVariables :
-          header << var
+#         header << var
+           header.append(var)
        self.TBMatrice.setVerticalHeaderLabels(header)
        self.TBMatrice.setHorizontalHeaderLabels(header)
 
   def  initialValeur(self):
-      liste=self.node.item.get_valeur()
+      liste=self.node.item.getValeur()
       dejaAffiche=0
       if (len(liste)) != self.nbLigs +1  :
          QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
@@ -179,10 +213,15 @@ class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
           for j in range(self.nbCols):
               monItem=self.TBMatrice.item(i,j)       
               texte=monItem.text()
-              val,ok=texte.toDouble() 
+              try :
+                 val=float(str(texte))
+                 ok=True
+              except :
+                 ok=False
+              #val,ok=texte.toDouble() 
               if ok == False :
                  QMessageBox.critical( self, tr("Mauvaise Valeur"),tr( "l element ") + str(i) + "," +str(j) +tr("n est pas correct"))
               listeCol.append(val)
           liste.append(listeCol)
       # on ajoute l ordre des variables aux valeurs
-      self.node.item.set_valeur(liste)
+      self.node.item.setValeur(liste)