Salome HOME
pour MT 02_06_17
[tools/eficas.git] / InterfaceQT4 / feuille.py
index b8581c2d99853bc5d0b71c644799a36353323ec4..246ee9a772fbdde184e43f8a67db9c001d3375e2 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 # Modules Python
-import string,types,os
+from __future__ import absolute_import
+try :
+  from builtins import str
+except :
+  pass
+import types,os
 import traceback
 
-from determine import monEnvQT5
-if monEnvQT5:
-   from PyQt5.QtWidgets import QToolButton ,QWidget
-   from PyQt5.QtGui import QFont, QFontMetrics
-   from PyQt5.QtCore import Qt
-else :
-   from PyQt4.QtGui import *
-   from PyQt4.QtCore import *
-from Extensions.i18n import tr
+from PyQt5.QtWidgets import QToolButton ,QWidget
+from PyQt5.QtGui import QFont, QFontMetrics
+from PyQt5.QtCore import Qt
 
+from Extensions.i18n import tr
 
-from gereIcones import ContientIcones
-from gereIcones import FacultatifOuOptionnel
-from qtSaisie    import SaisieValeur
+from .gereIcones import ContientIcones
+from .gereIcones import FacultatifOuOptionnel
+from .qtSaisie    import SaisieValeur
 
 nomMax=250
 # ---------------------------------------------------------------------- #
@@ -43,8 +43,7 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
 
 
    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-       #print "Feuille", monSimpDef,nom,objSimp
-       #print self
+       #print ("Feuille", monSimpDef,nom,objSimp)
        QWidget.__init__(self,None)
        self.node=node
        self.node.fenetre=self
@@ -79,15 +78,11 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
        self.setIconesGenerales()
        self.setCommentaire()
        self.setZoneInfo()
-          
+     
 
    def setNom(self):
        self.debutToolTip=""
        nomTraduit=tr(self.objSimp.nom)
-       #if len(nomTraduit) >= nomMax :
-       #  nom=nomTraduit[0:nomMax]+'...'
-       #  self.label.setText(nomTraduit)
-       #  self.debutToolTip=nomTraduit+"\n"
        longueur=QFontMetrics(self.label.font()).width(nomTraduit)
        if longueur >= nomMax :
          nouveauNom=self.formate(nomTraduit)
@@ -101,6 +96,13 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
           self.setMinimumHeight(50)
           self.resize(self.width(),200)
 
+   #def mousePressEvent(self, event):
+     #print 'mousePressEvent'
+     #import inspect
+     #print (inspect.getmro(self.__class__))
+     #self.__class__.mousePressEvent(self, event)
+
+
                                  
    def setValeurs(self):
       # print "passe dans setValeurs pour ", self.objSimp.nom
@@ -119,16 +121,19 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
                   'I'   : 'entiers',
                   'C'   : 'complexes'}
         type = mc.type[0]
-        if not d_aides.has_key(type) :
+        if not type in d_aides :
            if mc.min == mc.max:
                commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
            else :
-               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
+               if mc.max != "**" :
+                  commentaire=tr("entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
+               else :
+                  commentaire=""
         else :
            if mc.min == mc.max:
                commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])+'\n'
            else :
-               commentaire=tr("Entrez entre ")+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
+               commentaire=tr("Entrez entre ")+"\n"+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
         aideval=self.node.item.aide()
         commentaire=commentaire +  tr(aideval)
         self.monCommentaireLabel.setText(str(commentaire))
@@ -145,9 +150,12 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
       #if self.node.item.definition.validators : c+=self.node.item.definition.validators.aide()
       self.aide=c
       if self.objSimp.get_fr() != None and self.objSimp.get_fr() != "":
-          c2 = '<html><head/><body><p>'+c+str(self.objSimp.get_fr())+"</p></body></html>"
+          #c2 = '<html><head/><body><p>'+c+self.objSimp.get_fr().decode('latin-1','replace')+"</p></body></html>"
+          c2 = '<html><head/><body><p>'+c+self.objSimp.get_fr()
+          #c2 = '<html><head/><body><p>'+c+self.objSimp.get_fr()+"</p></body></html>"
           self.label.setToolTip(c2)
-          self.aide=str(self.objSimp.get_fr())+" "+c
+          #self.aide=self.objSimp.get_fr().decode('latin-1','ignore')+" "+c
+          self.aide=self.objSimp.get_fr()+" "+c
       else :
          c+=self.finCommentaire()
          if c != "" and c != None :
@@ -180,8 +188,11 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
       if mc.min == mc.max: commentaire=tr("Entrez ")+" "+str(mc.min)+" "
       else :               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)
 
-      if type(mctype) == types.ClassType: ctype = getattr(mctype, 'help_message', tr("Type de base inconnu"))
-      else:                               ctype = d_aides.get(mctype, tr("Type de base inconnu"))
+      try :
+         if issubclass(mctype,object) : ctype = getattr(mctype, 'help_message', tr("Type de base inconnu"))
+         else : ctype = d_aides.get(mctype, tr("Type de base inconnu"))
+      except:                        
+         ctype = d_aides.get(mctype, tr("Type de base inconnu"))
       if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype)
 
       commentaire+=ctype
@@ -191,12 +202,11 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
    def setZoneInfo(self):
       # info=str(self.nom)+'  '
       # if self.monSimpDef.get_fr() != None and self.monSimpDef.get_fr() != "": info+=self.monSimpDef.get_sug() +" "
-      # if self.monSimpDef.get_sug() != None and self.monSimpDef.get_sug() != "": info+="Valeur suggérée : "self.monSimpDef.get_sug()
+      # if self.monSimpDef.get_sug() != None and self.monSimpDef.get_sug() != "": info+="Valeur suggeree : "self.monSimpDef.get_sug()
       pass
-      #self.editor.affiche_infos(info)
 
    def reaffiche(self):
-      #print "dans reaffiche de feuille", self.nom
+
       if self.editor.jdc.aReafficher==True :
          self.parentQt.reaffiche()
 
@@ -227,7 +237,8 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
             try :
                self.setValeursApresBouton()
             except :
-               self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+               pass
+            self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
          else :
             if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
 
@@ -235,17 +246,14 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
       self.parentQt.reaffiche()
 
    def rendVisible(self):
-       #print "jjjjjjjjjjjjjjjjjjjjj"
        pass
 
    #def enterEvent(self,event):
    #   print "je passe dans enterEvent", self.nom
-      #if self.editor.code != "CARMELCND" :self.afficheOptionnel()
    #   QWidget.enterEvent(self,event)
 
    def traiteClicSurLabel(self,texte):
-       #print self.aide 
-       aide=self.aide+"\n"+self.aideALaSaisie()
+       aide=self.aide.encode('latin-1', 'ignore').decode('latin-1')+"\n"+self.aideALaSaisie().encode('latin-1', 'ignore').decode('latin-1')
        self.editor.affiche_commentaire(aide)
 
    def formate(self,t):