# 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 PyQt4 import *
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
+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
# ---------------------------------------------------------------------- #
def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
#print "Feuille", monSimpDef,nom,objSimp
- #print self
QWidget.__init__(self,None)
self.node=node
self.node.fenetre=self
+
+ # on se positionne pour les icones
+ #os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__))))
self.setupUi(self)
self.prendLeFocus=0
maPolice= QFont("Times", 10)
self.setFont(maPolice)
+ self.setFocusPolicy(Qt.StrongFocus)
self.parentQt=parentQt
self.editor=self.node.editor
self.setIconePoubelle()
self.setIconesFichier()
self.setIconesSalome()
+ 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)
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
def finCommentaire(self):
return ""
+
+ def finCommentaireListe(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 type in d_aides :
+ if mc.min == mc.max:
+ commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
+ else :
+ 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 ")+"\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))
+ return str(commentaire)
+
+
def setSuggestion(self):
if self.monSimpDef.get_sug() != None and self.monSimpDef.get_sug() != "":
suggere=str('<html><head/><body><p><span style=" font-size:8pt;">suggestion : ')+str(self.monSimpDef.get_sug())+"</span></p></body></html>"
#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 :
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
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 :
- #print " j appelle le reaffiche de parentQt"
self.parentQt.reaffiche()
#PN PN PN pas satisfaisant
#self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir)
#nodeAVoir.fenetre.setFocus()
# return # on est bien postionne
- if self.objSimp.isvalid() and hasattr(self, 'AAfficher'):
- self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+
+ if self.objSimp.isvalid() and hasattr(self, 'AAfficher'):
+ nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+ try :
+ index=self.editor.fenetreCentraleAffichee.listeAffichageWidget.index(nodeAVoir.fenetre.AAfficher)
+ if (index==len(self.editor.fenetreCentraleAffichee.listeAffichageWidget)-1) :
+ try :
+ nodeAVoir.fenetre.setValeursApresBouton()
+ except :
+ pass
+ else :
+ self.editor.fenetreCentraleAffichee.afficheSuivant(nodeAVoir.fenetre.AAfficher)
+ except :
+ pass
else :
- if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
+ if self.objSimp.isvalid() and hasattr(self, 'AAfficher'):
+ try :
+ self.setValeursApresBouton()
+ except :
+ pass
+ self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+ else :
+ if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
+
+ def reaffichePourDeplier(self):
+ self.parentQt.reaffiche()
+
+ def rendVisible(self):
+ pass
+ #def enterEvent(self,event):
+ # print "je passe dans enterEvent", self.nom
+ # 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):