from gereIcones import FacultatifOuOptionnel
from qtSaisie import SaisieValeur
+nomMax=250
# ---------------------------------------------------------------------- #
class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
# --------------------------------------------------------------------- #
- def __init__(self,node,monSimpDef,nom,objSimp,parentQt):
+ 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
self.nom=nom
self.objSimp=objSimp
self.node.fenetre=self
+ self.maCommande=commande
self.aRedimensionner=0
self.setSuggestion()
self.setValeurs()
self.setNom()
self.setValide()
- self.setPoubelle()
- self.setIcones()
+ self.setIconePoubelle()
+ self.setIconesFichier()
+ self.setIconesSalome()
self.setCommentaire()
self.setZoneInfo()
def setNom(self):
self.debutToolTip=""
- if len(self.objSimp.nom) >= 17 :
- nom=self.objSimp.nom[0:15]+'...'
- self.label.setText(nom)
- self.debutToolTip=self.objSimp.nom+"\n"
+ 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.label.setText(nouveauNom)
else :
- self.label.setText(self.objSimp.nom)
+ self.label.setText(nomTraduit)
+
+ def agrandit(self):
+ # inutile pour certains widgets
+ if self.height() < 40 :
+ self.setMinimumHeight(50)
+ self.resize(self.width(),200)
def setValeurs(self):
if hasattr(self,'lineEditVal'): self.lineEditVal.setToolTip(suggere)
def setCommentaire(self):
- #print "dans setCommentaire"
-
c = self.debutToolTip
+ #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><span style=" font-size:8pt;">'+c+str(self.objSimp.get_fr())+"</span></p></body></html>"
+ c2 = '<html><head/><body><p>'+c+str(self.objSimp.get_fr())+"</p></body></html>"
self.label.setToolTip(c2)
+ self.aide=str(self.objSimp.get_fr())+" "+c
else :
c+=self.finCommentaire()
if c != "" and c != None :
- c=str('<html><head/><body><p><span style=" font-size:8pt; ">')+c+"</span></p></body></html>"
+ self.aide=c
+ #c=str('<html><head/><body><p><span style=" font-size:8pt; ">')+c+"</span></p></body></html>"
+ c=str('<html><head/><body><p>')+c+"</p></body></html>"
self.label.setToolTip(c)
- def setIcones(self):
-
- mctype = self.monSimpDef.type[0]
- # selon
- if ( hasattr(self,"BFichier")):
- if mctype == "Repertoire":
- self.BRepertoire=self.BFichier
- #icon = QIcon(self.repIcon+"/fichier.png")
- #self.BRepertoire.setIcon(icon)
- self.connect(self.BRepertoire,SIGNAL("clicked()"),self.BRepertoirePressed)
- #self.BVisuFichier.close()
- else :
- #icon = QIcon(self.repIcon+"/visuFichier.png")
- #self.BVisuFichier.setIcon(icon)
- self.connect(self.BFichier,SIGNAL("clicked()"),self.BFichierPressed)
- self.connect(self.BVisuFichier,SIGNAL("clicked()"),self.BFichierVisu)
- return
-
- if ( hasattr(self,"BSalome")):
- enable_salome_selection = self.editor.salome and \
- (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or
- (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
- if enable_salome_selection:
- self.connect(self.BSalome,SIGNAL("pressed()"),self.BSalomePressed)
- #icon = QIcon(self.repIcon+"/flecheSalome.png")
- #self.BSalome.setIcon(icon)
-
- if not(('grma' in repr(mctype)) or ('grno' in repr(mctype))) or not(self.editor.salome):
- self.BView2D.close()
- else :
- #icon = QIcon(self.repIcon+"/salomeLoupe.png")
- #self.BView2D.setIcon(icon)
- self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed)
- else:
- self.BSalome.close()
- self.BView2D.close()
def showEvent(self, event):
QWidget.showEvent(self,event)
def aideALaSaisie(self):
- return
mc = self.node.item.get_definition()
mctype = mc.type[0]
- d_aide = { 'TXM' : tr(u"chaine de caracteres"),
+ d_aides = { 'TXM' : tr(u"chaine de caracteres"),
'R' : tr("reel"),
'I' : tr("entier"),
'C' : tr("complexe"),
'Fichier' : tr(u'fichier'),
'FichierNoAbs' : tr(u'fichier existant'),
'Repertoire' : tr(u'repertoire')}
- if mc.min == mc.max: commentaire=tr("Entrez ")+str(mc.min)
+
+ 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"))
if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype)
commentaire+=ctype
- if self.max!=1 : commentaire+="s"
+ if mc.max!=1 : commentaire+="s"
return commentaire
-
-
-
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()
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
+ #nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+ #print nodeAVoir.fenetre
+ #print "nodeAVoir.fenetre.isVisible()", nodeAVoir.fenetre.isVisible()
+ #if nodeAVoir.fenetre.isVisible() : return
+ #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)
+ else :
+ if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
+
+
+ def traiteClicSurLabel(self,texte):
+ #print self.aide
+ aide=self.aide+"\n"+self.aideALaSaisie()
+ self.editor.affiche_commentaire(aide)
+
+ def formate(self,t):
+ if t.find('_')==0 :
+ newText=t[0:19]+'\n'+t[19:]
+ else:
+ listeNom=t.split('_')
+ newTexte=""
+ ligne=""
+ for n in listeNom:
+ if len(ligne)+len(n) < 25 :
+ newTexte=newTexte+"_"+n
+ ligne+="_"+n
+ else :
+ newTexte=newTexte+"\n_"+n
+ ligne=""
+ #newTexte=t[0:t.rfind('_')]+'\n'+ t[t.rfind('_'):]
+ newText=newTexte[1:]
+ return newText
+
+
+