def update_node_label(self):
""" Met a jour le label du noeud """
+ pass
#print "NODE update_node_label", self.item.GetLabelText()
- labeltext,fonte,couleur = self.item.GetLabelText()
+ #labeltext,fonte,couleur = self.item.GetLabelText()
# PNPN a reflechir
#self.setText(0, labeltext)
- la couleur du texte
"""
# None --> fonte et couleur par defaut
+ if not(hasattr(self.object,'getlabeltext')): return self.object.nom,None,None
return self.object.getlabeltext(),None,None
def isvalid(self):
self.suiteTelemac=False
self.nombreDeBoutonParLigne=0
self.translatorFichier=None
+ self.dicoImages= {}
+ self.simpleClic= False
#--------------------------------------
self.closeArbre=self.appliEficas.CONFIGURATION.closeArbre
self.affiche=self.appliEficas.CONFIGURATION.affiche
self.nombreDeBoutonParLigne = self.appliEficas.CONFIGURATION.nombreDeBoutonParLigne
+ self.dicoImages = self.appliEficas.CONFIGURATION.dicoImages
+ self.simpleClic = self.appliEficas.CONFIGURATION.simpleClic
#self.taille = self.appliEficas.taille
#if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
def readFromStdErr(self):
a=self.monExe.readAllStandardError()
- self.w.view.append(str(a.data(),len(a)))
+ self.w.view.append(str(a.data()))
- def readFromStdErr(self) :
+ def readFromStdOut(self) :
a=self.monExe.readAllStandardOutput()
- self.w.view.append(str(a.data(),len(a)))
+ self.w.view.append(str(a.data()))
def readFromStdErrQT4(self):
a=self.monExe.readAllStandardError()
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))
self.aide=c
if self.objSimp.get_fr() != None and self.objSimp.get_fr() != "":
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()+"</p></body></html>"
self.label.setToolTip(c2)
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 :
self.dicoCmd[tr(cmd)]=cmd
rbcmd=(QRadioButton(tr(cmd)))
self.buttonGroup.addButton(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
self.commandesLayout.addWidget(rbcmd)
+ if self.editor.simpleClic : rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+ else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
self.buttonGroup.buttonClicked.connect(self.rbClique)
elif self.affiche_groupe==1 :
listeGroupes,dictGroupes=self.jdc.get_groups()
rbcmd=(QRadioButton(tr(cmd)))
self.buttonGroup.addButton(rbcmd)
self.commandesLayout.addWidget(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+ if self.editor.simpleClic : rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+ else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
self.buttonGroup.buttonClicked.connect(self.rbClique)
label2=QLabel(self)
label2.setText(" ")
rbcmd=(QRadioButton(tr(cmd)))
self.buttonGroup.addButton(rbcmd)
self.commandesLayout.addWidget(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+ if self.editor.simpleClic : rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+ else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
self.buttonGroup.buttonClicked.connect(self.rbClique)
rbcmd=QPushButton(tr(cmd))
rbcmd.setGeometry(QRect(40, 20, 211, 71))
rbcmd.setMaximumSize(QSize(250, 81))
- rbcmd.setStyleSheet("background-color : rgb(168, 227, 142);\n"
+ rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
"/*border-style : outset;*/\n"
"border-radius : 20px;\n"
"border-width : 30 px;\n"
"border-color : beige;\n"
-"text-align : left")
- icon = QIcon()
- icon.addPixmap(QPixmap("../monCode/images/essaiAster.png"), QIcon.Normal, QIcon.Off)
- rbcmd.setIcon(icon)
- rbcmd.setIconSize(QSize(48, 48))
+"text-align : center")
+ if cmd in self.editor.dicoImages :
+ fichier=self.editor.dicoImages[cmd]
+ icon = QIcon()
+ icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+ rbcmd.setIcon(icon)
+ rbcmd.setIconSize(QSize(48, 48))
self.buttonGroup.addButton(rbcmd)
self.maGrilleBouton.addWidget(rbcmd,ligne,col)
self.insereNoeudApresClick(None)
def rbClique(self,id):
- #print ('ds rbClique')
self.name=self.dicoCmd[str(id.text())]
definitionEtape=getattr(self.jdc.cata[0],self.name)
commentaire=getattr(definitionEtape,self.jdc.lang)
from .gereListe import GerePlie
from .gereListe import LECustom
-dicoLongueur={2:95,3:125,4:154,5:183,6:210}
+dicoLongueur={2:95,3:125,4:154,5:183,6:210,float('inf'):210}
hauteurMax=253
class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie):
self.BSelectFichier.setIconSize(QSize(32, 32))
self.listeValeursCourantes=self.node.item.GetListeValeurs()
- if self.monSimpDef.max != "**" and self.monSimpDef.max < 7:
- hauteur=dicoLongueur[self.monSimpDef.max]
- self.resize(self.width(),hauteur)
- self.setMinimumHeight(hauteur)
- if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
- else :
- self.resize(self.width(),hauteurMax)
- self.setMinimumHeight(hauteurMax)
+ #if self.monSimpDef.max != "**" and self.monSimpDef.max < 7:
+ # hauteur=dicoLongueur[self.monSimpDef.max]
+ # hauteur=dicoLongueur[2]
+ # print ('hauteur', hauteur)
+ # self.resize(self.width(),hauteur)
+ # self.setMinimumHeight(hauteur)
+ # if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
+ #else :
+ # self.resize(self.width(),hauteurMax)
+ # self.setMinimumHeight(hauteurMax)
self.finCommentaireListe()
self.parentQt.commandesLayout.insertWidget(-1,self)
self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
self.vScrollBar = self.scrollArea.verticalScrollBar()
self.politique=PolitiquePlusieurs(self.node,self.editor)
# construction du min de valeur a entrer
- if self.monSimpDef.max == "**" : aConstruire=7
- else : aConstruire=self.monSimpDef.max
- #for i in range(1,aConstruire):
- for i in range(1,7):
+ if self.monSimpDef.max == "**" : aConstruire=7
+ elif self.monSimpDef.max == float('inf'): aConstruire=7
+ else : aConstruire=self.monSimpDef.max
+ for i in range(1,aConstruire):
self.ajoutLineEdit()
QApplication.processEvents()
self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
# ajout d'une ligne vide ou affichage commentaire
if self.indexDernierLabel < self.monSimpDef.max : self.ajoutLineEdit()
else : self.scrollArea.setToolTip('nb max de valeurs atteint')
+ #self.adjustSize()
#self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
from builtins import str
except : pass
-import types,os,sys
+import types,os,sys,re
from PyQt5.QtWidgets import QFrame
from PyQt5.QtCore import QTimer, QSize, Qt
-from PyQt5.QtGui import QIcon
+from PyQt5.QtGui import QIcon, QBrush, QColor
from Extensions.i18n import tr
from .feuille import Feuille
from desWidgetPlusieursPlie import Ui_WidgetPlusieursPlie
+from .politiquesValidation import PolitiquePlusieurs
+from .qtSaisie import SaisieValeur
+
+pattern_blanc = re.compile(r"^\s*$")
+
class MonWidgetPlusieursPlie (Ui_WidgetPlusieursPlie,Feuille):
def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
- #print "MonWidgetPlusieursBase", nom
+ print "MonWidgetPlusieursBase", nom
Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
self.parentQt.commandesLayout.insertWidget(-1,self)
self.AAfficher=self.lineEditVal
self.maCommande.listeAffichageWidget.append(self.lineEditVal)
-
+ if self.node.item.has_into() :
+ self.lineEditVal.setReadOnly(True)
+ self.lineEditVal.setStyleSheet("background:rgb(235,235,235);\n")
+ self.lineEditVal.setToolTip("Ensemble discret de valeurs possibles, pas de Saisie Manuelle")
+ #self.lineEditVal.setPen(QtGui.QColor(0,0,200))
+ #b=QBrush(Qt.DiagCrossPattern)
+ #b.setColor(QColor(255,100,0))
+ #self.lineEditVal.setBrush(b)
+ else :
+ self.lineEditVal.returnPressed.connect(self.valeurEntree)
self.BVisuListe.clicked.connect(self.selectWidgetDeplie)
self.listeValeursCourantes=self.node.item.GetListeValeurs()
if self.listeValeursCourantes != [] : self.lineEditVal.setText(str(self.listeValeursCourantes))
else : self.lineEditVal.setText("")
- self.lineEditVal.setReadOnly(True)
+ self.politique=PolitiquePlusieurs(self.node,self.editor)
return
def selectWidgetDeplie(self):
self.editor.listeDesListesOuvertes.add(self.node.item)
self.reaffichePourDeplier()
+ def valeurEntree(self):
+ valeurTexte=self.lineEditVal.text()
+ print (valeurTexte[0])
+ print (valeurTexte[-1])
+ if valeurTexte[0] == '[' or valeurTexte[0] == '(' : valeurTexte = valeurTexte[1:]
+ if valeurTexte[-1] == ']' or valeurTexte[-1] == ')' : valeurTexte = valeurTexte[:-1]
+ print (valeurTexte)
+ listeValeursBrutes=valeurTexte.split(',')
+ if listeValeursBrutes == [] or listeValeursBrutes == None :
+ self.lineEditVal.setText(str(self.listeValeursCourantes))
+ return
+ listeValeur=[]
+ for v in listeValeursBrutes:
+ if v == None or pattern_blanc.match(v) :
+ self.editor.affiche_infos(str(listeValeur)+' Valeurs saisies incorrectes',Qt.red)
+ return
+ liste,validite=SaisieValeur.TraiteLEValeur(self,str(v))
+ if not validite :
+ self.editor.affiche_infos(str(listeValeur) +' Valeurs saisies incorrectes',Qt.red)
+ return
+ listeValeur.append(liste[0])
+ validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(listeValeur,-1,[])
+ if validite :
+ self.node.item.set_valeur(listeValeur)
+ self.node.item.isvalid()
+ self.setValeurs()
+ else :
+ self.editor.affiche_infos(str(listeValeur) + ' ' +comm,Qt.red)
+ self.lineEditVal.setText('')
elif type(valeur) == bytes:
listeValeurs=valeur.split(',')
else:
- listeValeurs.append(valeurBrute)
+ #listeValeurs.append(valeurBrute)
+ listeValeurs.append(valeur)
return listeValeurs,1