From: pascale.noyret Date: Tue, 9 Mar 2021 14:58:52 +0000 (+0100) Subject: pour bug du bloc avec in X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=41f843d4ea7a4cb896954f39ac56130a1c6630cd;p=tools%2Feficas.git pour bug du bloc avec in --- diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index 24d4cf14..a7b7faad 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -51,10 +51,10 @@ class JDCTree( QTreeWidget,GereRegles ): QTreeWidget.__init__(self, self.editor.widgetTree ) self.editor.verticalLayout_2.addWidget(self) if self.editor.enteteQTree=='complet': - self.headerItem().setText(0, "Commande ") - self.headerItem().setText(1, "Concept/Valeur") + self.headerItem().setText(0, "Commande ") + self.headerItem().setText(1, "Concept/Valeur") else : - self.headerItem().setText(0, "Commande ") + self.headerItem().setText(0, "Commande ") self.setColumnWidth(0,200) self.setExpandsOnDoubleClick(False) self.setSelectionMode(3) @@ -81,7 +81,7 @@ class JDCTree( QTreeWidget,GereRegles ): else : self.racine.children[0].deplieToutEtReaffiche() self.racine.children[0].fenetre.donnePremier() else : - self.racine.affichePanneau() + self.racine.affichePanneau() def contextMenuEvent(self,event) : #--------------------------------- @@ -122,8 +122,8 @@ class JDCTree( QTreeWidget,GereRegles ): itemParent = item while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent if self.tree.node_selected != itemParent : - item.setExpanded(False) - return + item.setExpanded(False) + return item.setPlie() item.plieToutEtReaffiche() @@ -143,9 +143,9 @@ class JDCTree( QTreeWidget,GereRegles ): if itemParent.plie==True : itemParent.setDeplie() itemParent=itemParent.treeParent if self.tree.node_selected != itemParent : - item.setExpanded(True) - self.inhibeExpand = False - return + item.setExpanded(True) + self.inhibeExpand = False + return item.deplieToutEtReaffiche() self.inhibeExpand = False @@ -165,16 +165,16 @@ class JDCTree( QTreeWidget,GereRegles ): itemParent=itemParent.treeParent if itemParent.fenetre != self.editor.fenetreCentraleAffichee : - estUneFeuille=(isinstance(item,composimp.Node)) - # il faut afficher le parent - # Attention - Specification particuliere pour MT qui permet de nn afficher qu 1 niveau - # le catalogue contient cette indication dans fenetreIhm - if estUneFeuille and itemParent.fenetreIhm=='deplie1Niveau' : - itemAvant.afficheCeNiveau() - return - if estUneFeuille : itemParent.affichePanneau() - elif self.editor.maConfiguration.afficheCommandesPliees : itemParent.plieToutEtReafficheSaufItem(item) - else : itemParent.affichePanneau() + estUneFeuille=(isinstance(item,composimp.Node)) + # il faut afficher le parent + # Attention - Specification particuliere pour MT qui permet de nn afficher qu 1 niveau + # le catalogue contient cette indication dans fenetreIhm + if estUneFeuille and itemParent.fenetreIhm=='deplie1Niveau' : + itemAvant.afficheCeNiveau() + return + if estUneFeuille : itemParent.affichePanneau() + elif self.editor.maConfiguration.afficheCommandesPliees : itemParent.plieToutEtReafficheSaufItem(item) + else : itemParent.affichePanneau() elif (isinstance(item,composimp.Node)) and item.fenetre : item.fenetre.rendVisible() @@ -243,12 +243,12 @@ class JDCNode(QTreeWidgetItem,GereRegles): else : mesColonnes=(name,) if self.treeParent.plie==True : - self.plie = True - self.appartientAUnNoeudPlie = True - if self.treeParent.item.isMCList() : self.appartientAUnNoeudPlie = self.treeParent.appartientAUnNoeudPlie + self.plie = True + self.appartientAUnNoeudPlie = True + if self.treeParent.item.isMCList() : self.appartientAUnNoeudPlie = self.treeParent.appartientAUnNoeudPlie else : - self.plie = False - self.appartientAUnNoeudPlie = False + self.plie = False + self.appartientAUnNoeudPlie = False #if item.nom == "POUTRE" :print "creation d'un noeud : ", item, " ",item.nom,"", self.treeParent, self.appartientAUnNoeudPlie , self.plie @@ -262,8 +262,8 @@ class JDCNode(QTreeWidgetItem,GereRegles): ajoutAuParentduNoeud=0 self.treeParent=treeParent while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : - self.treeParent.childrenComplete.append(self) - self.treeParent=self.treeParent.vraiParent + self.treeParent.childrenComplete.append(self) + self.treeParent=self.treeParent.vraiParent self.treeParent.childrenComplete.append(self) @@ -295,11 +295,11 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.state="" self.fenetre=None try : - if self.item.getObject().isBLOC() : - self.setExpanded(True) - self.plie=False + if self.item.getObject().isBLOC() : + self.setExpanded(True) + self.plie=False except : - pass + pass def buildChildren(self,posInsertion=10000): @@ -313,13 +313,13 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.listeItemPlie=[] for enfant in self.childrenComplete : - if enfant.plie : self.listeItemPlie.append(enfant.item) - else : self.listeItemExpanded.append(enfant.item) + if enfant.plie : self.listeItemPlie.append(enfant.item) + else : self.listeItemExpanded.append(enfant.item) for enfant in self.childrenComplete : - parent = enfant.treeParent - parent.removeChild(enfant) - enfant.JESUISOFF=1 + parent = enfant.treeParent + parent.removeChild(enfant) + enfant.JESUISOFF=1 self.children = [] @@ -328,12 +328,12 @@ class JDCNode(QTreeWidgetItem,GereRegles): ind=0 for item in sublist : - itemExpand=False - ancien=False - if item in self.listeItemExpanded : itemExpand=True; ancien=True - if item in self.listeItemPlie : itemExpand=False; ancien=True - nouvelItem=item.itemNode(self,item,itemExpand,ancien) - self.children.append(nouvelItem) + itemExpand=False + ancien=False + if item in self.listeItemExpanded : itemExpand=True; ancien=True + if item in self.listeItemPlie : itemExpand=False; ancien=True + nouvelItem=item.itemNode(self,item,itemExpand,ancien) + self.children.append(nouvelItem) #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children) @@ -342,7 +342,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): #------------------------------------------- sublist = self.item._getSubList() for node in self.childrenComplete: - if node.item.object==objSimp : return node + if node.item.object==objSimp : return node return None @@ -350,13 +350,13 @@ class JDCNode(QTreeWidgetItem,GereRegles): #------------------------- #print ('afficheCeNiveau pour ', self.item.nom, self.item.getLabelText()) for indiceWidget in range(self.editor.widgetCentraleLayout.count()): - widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget) - self.editor.widgetCentraleLayout.removeItem(widget) + widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget) + self.editor.widgetCentraleLayout.removeItem(widget) if self.editor.fenetreCentraleAffichee != None : - self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee) - self.editor.fenetreCentraleAffichee.setParent(None) - self.editor.fenetreCentraleAffichee.close() - self.editor.fenetreCentraleAffichee.deleteLater() + self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee) + self.editor.fenetreCentraleAffichee.setParent(None) + self.editor.fenetreCentraleAffichee.close() + self.editor.fenetreCentraleAffichee.deleteLater() from monWidgetNiveauFact import MonWidgetNiveauFact, MonWidgetNiveauFactTableau maDefinition = self.item.get_definition() @@ -385,9 +385,9 @@ class JDCNode(QTreeWidgetItem,GereRegles): #------------------------- #print ('_________________ds affichePanneau pour', self.item.nom) # pour l instant pas d inactif - if not(self.item.isActif()) : - from .monWidgetInactif import MonWidgetInactif - self.fenetre = MonWidgetInactif(self,self.editor) + if not(self.item.isActif()) : + from .monWidgetInactif import MonWidgetInactif + self.fenetre = MonWidgetInactif(self,self.editor) else: itemParent=self while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent @@ -402,18 +402,18 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.editor.restoreSplitterSizes() for indiceWidget in range(self.editor.widgetCentraleLayout.count()): - widget = self.editor.widgetCentraleLayout.itemAt(indiceWidget) - self.editor.widgetCentraleLayout.removeItem(widget) + widget = self.editor.widgetCentraleLayout.itemAt(indiceWidget) + self.editor.widgetCentraleLayout.removeItem(widget) # ceinture et bretelle #print 'old fenetre = ',self.editor.fenetreCentraleAffichee if self.editor.fenetreCentraleAffichee != None : - try : + try : self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee) self.editor.fenetreCentraleAffichee.setParent(None) self.editor.fenetreCentraleAffichee.close() self.editor.fenetreCentraleAffichee.deleteLater() - except : + except : pass self.editor.widgetCentraleLayout.addWidget(self.fenetre) @@ -442,16 +442,16 @@ class JDCNode(QTreeWidgetItem,GereRegles): # On traite par une exception le cas ou l'utilisateur final cherche a desactiver # (commentariser) un commentaire. try : - pos=self.treeParent.children.index(self) - commande_comment = self.item.getObjetCommentarise() - # On signale a l editeur du panel (le JDCDisplay) une modification - self.editor.initModif() - self.treeParent.buildChildren() - self.treeParent.children[pos].select() - self.treeParent.children[pos].affichePanneau() + pos=self.treeParent.children.index(self) + commande_comment = self.item.getObjetCommentarise() + # On signale a l editeur du panel (le JDCDisplay) une modification + self.editor.initModif() + self.treeParent.buildChildren() + self.treeParent.children[pos].select() + self.treeParent.children[pos].affichePanneau() except Exception as e: - traceback.print_exc() - QMessageBox.critical( self.editor, "TOO BAD",str(e)) + traceback.print_exc() + QMessageBox.critical( self.editor, "TOO BAD",str(e)) def unCommentIt(self): #------------------------- @@ -459,14 +459,14 @@ class JDCNode(QTreeWidgetItem,GereRegles): Realise la decommentarisation de self """ try : - pos=self.treeParent.children.index(self) - commande,nom = self.item.unComment() - self.editor.initModif() - self.treeParent.buildChildren() - self.treeParent.children[pos].select() - self.treeParent.children[pos].affichePanneau() + pos=self.treeParent.children.index(self) + commande,nom = self.item.unComment() + self.editor.initModif() + self.treeParent.buildChildren() + self.treeParent.children[pos].select() + self.treeParent.children[pos].affichePanneau() except Exception as e: - QMessageBox.critical( self.editor, "Erreur !",str(e)) + QMessageBox.critical( self.editor, "Erreur !",str(e)) def addComment( self, after=True ): #----------------------------------- @@ -475,9 +475,9 @@ class JDCNode(QTreeWidgetItem,GereRegles): """ self.editor.initModif() if after: - pos = 'after' + pos = 'after' else: - pos = 'before' + pos = 'before' return self.appendBrother( COMMENT, pos ) def addParameters( self, after=True ): @@ -500,7 +500,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): """ #print "select pour", self.item.nom for item in self.tree.selectedItems() : - item.setSelected(0) + item.setSelected(0) self.tree.setCurrentItem( self ) #------------------------------------------------------------------ @@ -520,18 +520,18 @@ class JDCNode(QTreeWidgetItem,GereRegles): if (isinstance(self.treeParent, compojdc.Node)) and not self.verifiePosition(name,pos) : return 0 if self.treeParent != self.vraiParent : - index = self.vraiParent.children.index(self) - if pos == 'before' : index = index - elif pos == 'after' : index = index +1 - return self.vraiParent.appendChild(name,pos=index,plier=plier) + index = self.vraiParent.children.index(self) + if pos == 'before' : index = index + elif pos == 'after' : index = index +1 + return self.vraiParent.appendChild(name,pos=index,plier=plier) else : - index = self.treeParent.children.index(self) - if pos == 'before': index = index - elif pos == 'after' : index = index +1 - else: + index = self.treeParent.children.index(self) + if pos == 'before': index = index + elif pos == 'after' : index = index +1 + else: print(pos, tr(" n'est pas un index valide pour appendBrother")) return 0 - return self.treeParent.appendChild(name,pos=index,plier=plier) + return self.treeParent.appendChild(name,pos=index,plier=plier) def verifiePosition(self,name,pos,aLaRacine=False): #---------------------------------------------------- @@ -546,21 +546,21 @@ class JDCNode(QTreeWidgetItem,GereRegles): if pos=="after" : indexOu = indexOu+1 for e in etapes[:indexOu] : - nom=e.nom - if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue - indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom) - if indexEtape > indexName : - comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom - QMessageBox.information( None,tr('insertion impossible'),comment, ) - return False + nom=e.nom + if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue + indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom) + if indexEtape > indexName : + comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom + QMessageBox.information( None,tr('insertion impossible'),comment, ) + return False for e in etapes[indexOu:] : - nom=e.nom - if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue - indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom) - if indexEtape < indexName : - comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom - QMessageBox.information( None,tr('insertion impossible'),comment, ) - return False + nom=e.nom + if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue + indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom) + if indexEtape < indexName : + comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom + QMessageBox.information( None,tr('insertion impossible'),comment, ) + return False return True def appendChild(self,name,pos=None,plier=False): @@ -640,11 +640,11 @@ class JDCNode(QTreeWidgetItem,GereRegles): if recalcule : jdc.recalculeEtatCorrelation() if ret==0 : - if self.treeParent.childrenComplete : - notdeleted=self.treeParent.childrenComplete[index+1] - notdeleted.select() + if self.treeParent.childrenComplete : + notdeleted=self.treeParent.childrenComplete[index+1] + notdeleted.select() else : - toselect.select() + toselect.select() from InterfaceQT4 import compojdc # cas ou on detruit dans l arbre sans affichage @@ -667,22 +667,22 @@ class JDCNode(QTreeWidgetItem,GereRegles): jdc=self.treeParent parentPosition=jdc while not(isinstance(jdc,compojdc.Node)): - jdc=jdc.treeParent + jdc=jdc.treeParent for noeud in liste : - if not( isinstance(noeud.treeParent, compojdc.Node)): continue - if noeud.item.nom == "VARIABLE" : recalcule=1 - if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud) + if not( isinstance(noeud.treeParent, compojdc.Node)): continue + if noeud.item.nom == "VARIABLE" : recalcule=1 + if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud) if index < 0 : index =0 # Cas ou on detruit dans une ETape if index == 9999 : - parentPosition=self.treeParent - while not(isinstance(parentPosition, compojdc.Node)): - index=parentPosition.treeParent.children.index(parentPosition) - parentPosition=parentPosition.treeParent + parentPosition=self.treeParent + while not(isinstance(parentPosition, compojdc.Node)): + index=parentPosition.treeParent.children.index(parentPosition) + parentPosition=parentPosition.treeParent for noeud in liste: - noeud.treeParent.item.suppItem(noeud.item) + noeud.treeParent.item.suppItem(noeud.item) jdc.buildChildren() if recalcule : jdc.recalculeEtatCorrelation() @@ -761,8 +761,8 @@ class JDCNode(QTreeWidgetItem,GereRegles): def updateNodeLabelInBlack(self): #------------------------------- if hasattr(self.appliEficas,'noeudColore'): - self.appliEficas.noeudColore.setForeground(0,Qt.black) - self.appliEficas.noeudColore.updateNodeLabel + self.appliEficas.noeudColore.setForeground(0,Qt.black) + self.appliEficas.noeudColore.updateNodeLabel def updateNodeLabelInBlue(self): #------------------------------- @@ -777,14 +777,14 @@ class JDCNode(QTreeWidgetItem,GereRegles): #---------------------------------------------- if hasattr(self.appliEficas,'listeNoeudsColores'): for noeud in self.appliEficas.listeNoeudsColores: - noeud.setTextColor( 0,Qt.black) - noeud.updateNodeLabel() + noeud.setTextColor( 0,Qt.black) + noeud.updateNodeLabel() self.appliEficas.listeNoeudsColores=[] for noeud in liste : - noeud.setTextColor( 0,Qt.blue ) - labeltext,fonte,couleur = noeud.item.getLabelText() - noeud.setText(0, labeltext) - self.appliEficas.listeNoeudsColores.append(noeud) + noeud.setTextColor( 0,Qt.blue ) + labeltext,fonte,couleur = noeud.item.getLabelText() + noeud.setText(0, labeltext) + self.appliEficas.listeNoeudsColores.append(noeud) def updateNodeTexteInBlack(self): #-------------------------------- @@ -827,8 +827,8 @@ class JDCNode(QTreeWidgetItem,GereRegles): #print "NODE updateTexte", self.item.getLabelText() self.updateNodeTexte() if self.isExpanded() : - for child in self.children: - if child.isHidden() == false : child.updateTexte() + for child in self.children: + if child.isHidden() == false : child.updateTexte() def forceRecalculChildren(self,niveau): @@ -865,7 +865,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): child=None try : #if 1 : - child = self.appendBrother(objet_a_copier,pos) + child = self.appendBrother(objet_a_copier,pos) except : pass return child @@ -884,17 +884,17 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.inhibeExpand=True from InterfaceQT4 import compojdc if (isinstance(self, compojdc.Node)) : - self.affichePanneau() - self.inhibeExpand=False - return + self.affichePanneau() + self.inhibeExpand=False + return self.editor.deplier = False for item in self.children : - # il ne faut pas plier les blocs - from InterfaceQT4 import compobloc - if (isinstance(item,compobloc.Node)) : continue - item.setPlie() - if item==itemADeplier : - itemADeplier.setDeplie() + # il ne faut pas plier les blocs + from InterfaceQT4 import compobloc + if (isinstance(item,compobloc.Node)) : continue + item.setPlie() + if item==itemADeplier : + itemADeplier.setDeplie() self.affichePanneau() self.inhibeExpand=False @@ -906,10 +906,10 @@ class JDCNode(QTreeWidgetItem,GereRegles): self.inhibeExpand=True self.editor.deplier = False for item in self.children : - # il ne faut pas plier les blocs - from InterfaceQT4 import compobloc - if (isinstance(item,compobloc.Node)) : continue - item.setPlie() + # il ne faut pas plier les blocs + from InterfaceQT4 import compobloc + if (isinstance(item,compobloc.Node)) : continue + item.setPlie() self.affichePanneau() #print ("fin plieToutEtReaffiche", self.item.getNom()) @@ -917,7 +917,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): #----------------------------- self.editor.deplier = True for item in self.children : - item.setDeplie() + item.setDeplie() self.affichePanneau() def setPlie(self): @@ -945,26 +945,26 @@ class JDCNode(QTreeWidgetItem,GereRegles): from InterfaceQT4 import composimp if isinstance(self,composimp.Node) : return for c in self.children : - c.setPlieChildren() - #print "dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0] - c.appartientAUnNoeudPlie=True - c.plie=True - #print "dans setPlieChildren plie", c.item.nom - # 01/2018 PNPN : boucle sur MT __ La ligne suivante ne me semble pas necessaire - #if not (isinstance(c,composimp.Node)) :c.setExpanded(False) + c.setPlieChildren() + #print "dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0] + c.appartientAUnNoeudPlie=True + c.plie=True + #print "dans setPlieChildren plie", c.item.nom + # 01/2018 PNPN : boucle sur MT __ La ligne suivante ne me semble pas necessaire + #if not (isinstance(c,composimp.Node)) :c.setExpanded(False) # Pour les blocs et les motcles list # on affiche un niveau de plus from InterfaceQT4 import compobloc from InterfaceQT4 import compomclist if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) : - niveauPere=self.treeParent - while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) : - niveauPere=niveauPere.treeParent - for c in self.children : - c.appartientAUnNoeudPlie=niveauPere.appartientAUnNoeudPlie - #print ("dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0], "mis a la valeur ", niveauPere.appartientAUnNoeudPlie) - c.setExpanded(False) + niveauPere=self.treeParent + while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) : + niveauPere=niveauPere.treeParent + for c in self.children : + c.appartientAUnNoeudPlie=niveauPere.appartientAUnNoeudPlie + #print ("dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0], "mis a la valeur ", niveauPere.appartientAUnNoeudPlie) + c.setExpanded(False) def setDeplie(self): @@ -982,11 +982,11 @@ class JDCNode(QTreeWidgetItem,GereRegles): #----------------------------- #print "dans setDeplieChildren appartientAUnNoeudPlie=False ", self.item.getLabelText() for c in self.children : - c.setDeplieChildren() - #print "dans setDeplieChildren ", c.item.nom - c.appartientAUnNoeudPlie=False - c.setExpanded(True) - c.plie=False + c.setDeplieChildren() + #print "dans setDeplieChildren ", c.item.nom + c.appartientAUnNoeudPlie=False + c.setExpanded(True) + c.plie=False def selectAvant(self): #----------------------------- @@ -995,12 +995,12 @@ class JDCNode(QTreeWidgetItem,GereRegles): except : cherche=self.item.jdc.etapes[-1] node=None for i in self.tree.racine.children : - if i.item.object== cherche : + if i.item.object== cherche : node=i break if node : - node.affichePanneau() - node.select() + node.affichePanneau() + node.select() def selectApres(self): #--------------------- @@ -1009,9 +1009,9 @@ class JDCNode(QTreeWidgetItem,GereRegles): except : cherche=self.item.jdc.etapes[0] node=None for i in self.tree.racine.children : - if i.item.object== cherche : - node=i - break + if i.item.object== cherche : + node=i + break if node : node.affichePanneau() node.select() diff --git a/InterfaceQT4/eficas_go.py b/InterfaceQT4/eficas_go.py index bf705900..3ab04782 100755 --- a/InterfaceQT4/eficas_go.py +++ b/InterfaceQT4/eficas_go.py @@ -23,7 +23,7 @@ from __future__ import absolute_import from __future__ import print_function try : - from builtins import str + from builtins import str except : pass @@ -37,16 +37,20 @@ if ihmDir not in sys.path : sys.path.append(ihmDir) if ihmQTDir not in sys.path : sys.path.append(ihmQTDir) if editeurDir not in sys.path : sys.path.append(editeurDir) +if sys.version_info[0] < 3: + print("Must be using Python 3") + sys.exit() + def lanceEficas(code=None, multi=False, langue='en', labelCode=None): #------------------------------------------------------------------- """ Lance l'appli EFICAS avec Ihm """ try : - from PyQt5.QtWidgets import QApplication + from PyQt5.QtWidgets import QApplication except : - print('Please, set qt environment') - return + print('Please, set qt environment') + return from Editeur import session options = session.parse(sys.argv) @@ -82,9 +86,9 @@ def genereXSD(code=None): from Editeur import session options = session.parse(sys.argv) if code != None : options.code = code - if options.fichierCata == None : - print ('Use -c cata_name.py') - return + if options.fichierCata == None : + print ('Use -c cata_name.py') + return monEficasSsIhm = getEficasSsIhm(code=options.code,genereXSD=True) monEditor=monEficasSsIhm.getEditor() @@ -104,26 +108,26 @@ def genereXML(code=None): from Editeur import session options=session.parse(sys.argv) if code != None : options.code = code - if options.fichierCata == None : - print ('Use -c cata_name.py') - return + if options.fichierCata == None : + print ('Use -c cata_name.py') + return try : fichier=options.comm[0] except : fichier=None - if fichier==None : - print ('comm file is needed') - return - + if fichier==None : + print ('comm file is needed') + return + monEficasSsIhm = getEficasSsIhm(code=options.code, forceXML=True) from .editorSsIhm import JDCEditorSsIhm monEditeur=JDCEditorSsIhm(monEficasSsIhm,fichier) if options.fichierXMLOut == None : - fichierXMLOut=fichier[:fichier.rfind(".")]+'.xml' - else : - fichierXMLOut=options.fichierXMLOut + fichierXMLOut=fichier[:fichier.rfind(".")]+'.xml' + else : + fichierXMLOut=options.fichierXMLOut if not(monEditeur.jdc.isValid()): - print ('Fichier comm is not valid') - return + print ('Fichier comm is not valid') + return print ('Fichier comm is not valid') monEditeur.XMLgenerator.gener(monEditeur.jdc) monEditeur.XMLgenerator.writeDefault(fichierXMLOut) @@ -133,10 +137,10 @@ def genereStructure(code=None): from Editeur import session options=session.parse(sys.argv) if code != None : options.code = code - if options.fichierCata == None : - print ('Use -c cata_name.py') - return - + if options.fichierCata == None : + print ('Use -c cata_name.py') + return + monEficasSsIhm = getEficasSsIhm(code=options.code,genereXSD=True) monEditor=monEficasSsIhm.getEditor() texteStructure=monEditor.dumpStructure() @@ -153,13 +157,13 @@ def validateDataSet(code=None): from Editeur import session options=session.parse(sys.argv) if code != None : options.code = code - if options.fichierCata == None : - print ('Use -c cata_name.py') - return + if options.fichierCata == None : + print ('Use -c cata_name.py') + return fichier=options.comm[0] - if fichier==None : - print ('comm file is needed') - return + if fichier==None : + print ('comm file is needed') + return from .editorSsIhm import JDCEditorSsIhm monEficasSsIhm = getEficasSsIhm(code=options.code) monEditeur=JDCEditorSsIhm(monEficasSsIhm,fichier) @@ -183,26 +187,26 @@ def validateFonction(laFonction, debug=False): laDefDeLaFonctionDansAccas = getattr(monEditor.readercata.cata,laFonctionName) objConstruit = laDefDeLaFonctionDansAccas.makeObjetPourVerifSignature(*args,**kwargs) if (objConstruit.isValid()) : - ret = laFonction(*args, **kwargs) - return ret + ret = laFonction(*args, **kwargs) + return ret else : - print ('mauvais arguments') - print (objConstruit.CR()) - return None + print ('mauvais arguments') + print (objConstruit.CR()) + return None return fonctionValidee #maClasseAccas=getattr(self.cata,objEtape.monNomClasseAccas) return fonctionValidee - + return laFonction - + # --------------------------- toutes les fonctions après sont obseletes def lanceEficas_ssIhm(code=None,fichier=None,ssCode=None,version=None,debug=False,langue='en'): """ - Lance l'appli EFICAS SsIhm + Lance l'appli EFICAS SsIhm """ # Analyse des arguments de la ligne de commande print ('deprecated') @@ -220,8 +224,8 @@ def lanceEficas_ssIhm(code=None,fichier=None,ssCode=None,version=None,debug=Fals from . import readercata if not hasattr ( Eficas, 'readercata'): - monreadercata = readercata.ReaderCata( parent, Eficas ) - Eficas.readercata=monreadercata + monreadercata = readercata.ReaderCata( parent, Eficas ) + Eficas.readercata=monreadercata from .editor import JDCEditor monEditeur=JDCEditor(Eficas,fichier) @@ -241,35 +245,35 @@ def lanceEficas_ssIhm_reecrit(code=None,fichier=None,ssCode=None,version=None,ou print ('deprecated') #print 'lanceEficas_ssIhm_reecrit', fichier monEditeur=lanceEficas_ssIhm(code,fichier,ssCode,version,langue=langue) - if ou == None : - fileName=fichier.split(".")[0]+"_reecrit.comm" - fn=fichier.split(".")[0]+"_cr.txt" + if ou == None : + fileName=fichier.split(".")[0]+"_reecrit.comm" + fn=fichier.split(".")[0]+"_cr.txt" else : - f=fichier.split(".")[0]+"_reecrit.comm" - f1=os.path.basename(f) - fn=fichier.split(".")[0]+"_cr.txt" - f2=os.path.basename(fn) - fileName=os.path.join(ou,f1) - fileCr=os.path.join(ou,f2) + f=fichier.split(".")[0]+"_reecrit.comm" + f1=os.path.basename(f) + fn=fichier.split(".")[0]+"_cr.txt" + f2=os.path.basename(fn) + fileName=os.path.join(ou,f1) + fileCr=os.path.join(ou,f2) debut=False if debug : - import cProfile, pstats, StringIO - pr = cProfile.Profile() - pr.enable() - monEditeur.saveFileAs(fileName=fileName) - pr.disable() - s = StringIO.StringIO() - sortby = 'cumulative' - ps = pstats.Stats(pr, stream=s).sort_stats(sortby) - ps.print_stats() - print (s.getValue()) + import cProfile, pstats, StringIO + pr = cProfile.Profile() + pr.enable() + monEditeur.saveFileAs(fileName=fileName) + pr.disable() + s = StringIO.StringIO() + sortby = 'cumulative' + ps = pstats.Stats(pr, stream=s).sort_stats(sortby) + ps.print_stats() + print (s.getValue()) elif not leger : monEditeur.saveFileAs(fileName=fileName) else : monEditeur.saveFileLegerAs(fileName=fileName) if cr: - f = open(fileCr, 'w') - f.write(str(monEditeur.jdc.report())) - f.close() + f = open(fileCr, 'w') + f.write(str(monEditeur.jdc.report())) + f.close() def lanceEficas_param(code='Adao',fichier=None,version='V0',macro='ASSIMILATION_STUDY'): """ @@ -287,8 +291,8 @@ def lanceEficas_param(code='Adao',fichier=None,version='V0',macro='ASSIMILATION_ from . import readercata if not hasattr ( Eficas, 'readercata'): - monreadercata = readercata.ReaderCata( parent, Eficas ) - Eficas.readercata=monreadercata + monreadercata = readercata.ReaderCata( parent, Eficas ) + Eficas.readercata=monreadercata from .editor import JDCEditor monEditeur=JDCEditor(Eficas,fichier) @@ -324,7 +328,7 @@ def loadJDC(filename): jdc = "" for line in fcomm.readlines(): if not (line[0]=='#'): - jdc+="%s"%line + jdc+="%s"%line # Warning, we have to make sure that the jdc comes as a simple # string without any extra spaces/newlines @@ -334,5 +338,3 @@ if __name__ == "__main__": import sys sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..'))) lanceEficas(code=None,multi=True) - - diff --git a/InterfaceQT4/monWidgetPlusieursInto.py b/InterfaceQT4/monWidgetPlusieursInto.py index 06ae4a43..5937a8c3 100644 --- a/InterfaceQT4/monWidgetPlusieursInto.py +++ b/InterfaceQT4/monWidgetPlusieursInto.py @@ -20,8 +20,8 @@ # Modules Python from __future__ import absolute_import try : - from builtins import str - from builtins import range + from builtins import str + from builtins import range except : pass import types,os @@ -43,7 +43,7 @@ from InterfaceQT4.gereListe import GereListe class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe): - def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): self.index=1 self.alpha=0 @@ -77,119 +77,119 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe) if len(self.listeAAfficher) < 30 and hasattr(self,'frameRecherche') : self.frameRecherche.close() if len(self.listeAAfficher) == len(self.listeValeursCourantes) : self.CBCheck.setChecked(True) if len(self.listeAAfficher) < 10 : - self.setMinimumHeight(len(self.listeAAfficher)*22+55) + self.setMinimumHeight(len(self.listeAAfficher)*22+55) else : - self.setMinimumHeight(300) - + self.setMinimumHeight(300) + # try except si la liste des possibles est vide # prevoir qqchose try : - self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + self.maCommande.listeAffichageWidget.append(self.lineEditVal1) except : - pass - - - def changeTout(self,int): - #print ('changeTout') - if self.inhibe : return - self.inhibe=True - if not(self.CBCheck.isChecked()) : - min,max = self.node.item.getMinMax() - if max < len(self.listeAAfficher) : - commentaire=tr('impossible de tout selectionner : max =')+str(max) - self.editor.afficheInfos(commentaire,Qt.red) - self.inhibe=False - return - for i in range(len(self.listeAAfficher)): - nomCB="lineEditVal"+str(i+1) - courant=getattr(self,nomCB) - courant.setChecked(True) - self.CBCheck.setChecked(False) - else : - for i in range(len(self.listeAAfficher)): - nomCB="lineEditVal"+str(i+1) - courant=getattr(self,nomCB) - courant.setChecked(False) - self.CBCheck.setChecked(True) - self.inhibe=False - self.changeValeur() - - def setValeurs(self): - #print ('setValeurs') - self.listeValeursCourantes =self.node.item.getValeur() - if self.listeValeursCourantes == None : self.listeValeursCourantes=[] - #print ("ds set Valeur", self.listeValeursCourantes, self.node.item.getValeur()) - self.politique=PolitiquePlusieurs(self.node,self.editor) - self.vScrollBar = self.scrollArea.verticalScrollBar() - - if hasattr(self.node.item.definition.validators,'set_MCSimp'): + pass + + + def changeTout(self,int): + #print ('changeTout') + if self.inhibe : return + self.inhibe=True + if not(self.CBCheck.isChecked()) : + min,max = self.node.item.getMinMax() + if max < len(self.listeAAfficher) : + commentaire=tr('impossible de tout selectionner : max =')+str(max) + self.editor.afficheInfos(commentaire,Qt.red) + self.inhibe=False + return + for i in range(len(self.listeAAfficher)): + nomCB="lineEditVal"+str(i+1) + courant=getattr(self,nomCB) + courant.setChecked(True) + self.CBCheck.setChecked(False) + else : + for i in range(len(self.listeAAfficher)): + nomCB="lineEditVal"+str(i+1) + courant=getattr(self,nomCB) + courant.setChecked(False) + self.CBCheck.setChecked(True) + self.inhibe=False + self.changeValeur() + + def setValeurs(self): + #print ('setValeurs') + self.listeValeursCourantes =self.node.item.getValeur() + if self.listeValeursCourantes == None : self.listeValeursCourantes=[] + #print ("ds set Valeur", self.listeValeursCourantes, self.node.item.getValeur()) + self.politique=PolitiquePlusieurs(self.node,self.editor) + self.vScrollBar = self.scrollArea.verticalScrollBar() + + if hasattr(self.node.item.definition.validators,'set_MCSimp'): obj=self.node.item.getObject() self.node.item.definition.validators.set_MCSimp(obj) if self.node.item.isValid() == 0 : - liste=[] - for item in self.listeValeursCourantes: - if self.node.item.definition.validators.verifItem(item)==1: - liste.append(item) - self.listeAAfficher=self.node.item.getListePossible(liste) + liste=[] + for item in self.listeValeursCourantes: + if self.node.item.definition.validators.verifItem(item)==1: + liste.append(item) + self.listeAAfficher=self.node.item.getListePossible(liste) else: - self.listeAAfficher=self.node.item.getListePossible([]) - else : - self.listeAAfficher=self.node.item.getListePossible([]) - - if self.node.item.hasIntoSug() : self.listeAAfficher=self.node.item.getListePossibleAvecSug([]) - - - if self.objSimp.waitAssd() : - self.listeAAfficher=self.node.item.getSdAvantDuBonType() - if self.listeAAfficher== None or self.listeAAfficher==[] : self.listeAAfficher=[] + self.listeAAfficher=self.node.item.getListePossible([]) + else : + self.listeAAfficher=self.node.item.getListePossible([]) - #if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400) - #else : self.setMinimumHeight(len(self.listeAAfficher)*30) + if self.node.item.hasIntoSug() : self.listeAAfficher=self.node.item.getListePossibleAvecSug([]) - self.PourEtreCoche=[] - if self.objSimp.waitUserAssd() : - for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept) - elif self.objSimp.waitAssd() : - for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept.nom) - else : - for val in self.listeValeursCourantes: self.PourEtreCoche.append(val) - maListe=[] - for i in self.listeAAfficher: maListe.append(i) - if self.alpha==1 : maListe.sort() - for i in range(1,len(maListe)+1): self.ajoutCB(i) + if self.objSimp.waitAssd() : + self.listeAAfficher=self.node.item.getSdAvantDuBonType() + if self.listeAAfficher== None or self.listeAAfficher==[] : self.listeAAfficher=[] - self.inhibe=True - for i in range(len(maListe)): - nomCB="lineEditVal"+str(i+1) - courant=getattr(self,nomCB) - courant.setText(str(maListe[i])) - if maListe[i] in self.PourEtreCoche : courant.setChecked(True) - else : courant.setChecked(False) + #if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400) + #else : self.setMinimumHeight(len(self.listeAAfficher)*30) - courant.toggled.connect(self.changeValeur) - self.inhibe=False + self.PourEtreCoche=[] + if self.objSimp.waitUserAssd() : + for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept) + elif self.objSimp.waitAssd() : + for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept.nom) + else : + for val in self.listeValeursCourantes: self.PourEtreCoche.append(val) + + maListe=[] + for i in self.listeAAfficher: maListe.append(i) + if self.alpha==1 : maListe.sort() + for i in range(1,len(maListe)+1): self.ajoutCB(i) + + self.inhibe=True + for i in range(len(maListe)): + nomCB="lineEditVal"+str(i+1) + courant=getattr(self,nomCB) + courant.setText(str(maListe[i])) + if maListe[i] in self.PourEtreCoche : courant.setChecked(True) + else : courant.setChecked(False) + + courant.toggled.connect(self.changeValeur) + self.inhibe=False - self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) + self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) - def ajoutCB(self,index,valeur=None): - #print ('ajoutCB') - nomCB="lineEditVal"+str(index) - if hasattr(self,nomCB) : return - nouveauCB = QCheckBox(self.scrollArea) - self.CBLayout.insertWidget(index-1,nouveauCB) - self.listeCB.append(nouveauCB) - nouveauCB.setText("") - if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)") - else : nouveauCB.setStyleSheet("background:rgb(240,240,240)") - self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum) - nouveauCB.setFocus() - setattr(self,nomCB,nouveauCB) + def ajoutCB(self,index,valeur=None): + #print ('ajoutCB') + nomCB="lineEditVal"+str(index) + if hasattr(self,nomCB) : return + nouveauCB = QCheckBox(self.scrollArea) + self.CBLayout.insertWidget(index-1,nouveauCB) + self.listeCB.append(nouveauCB) + nouveauCB.setText("") + if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)") + else : nouveauCB.setStyleSheet("background:rgb(240,240,240)") + self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum) + nouveauCB.setFocus() + setattr(self,nomCB,nouveauCB) - def ajout1Valeur(self,valeur=None): + def ajout1Valeur(self,valeur=None): #print ('ajout1Valeur') if valeur == None : return liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur)) @@ -200,68 +200,67 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe) validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,-1,listeVal) if (comm2 != "" and comm != None) : return comm2 if validite : - self.listeValeursCourantes=self.listeValeursCourantes+listeRetour - return None + self.listeValeursCourantes=self.listeValeursCourantes+listeRetour + return None else : - return(comm2+" "+comm) - - - - def changeValeur(self): - #def changeValeur(self,changeDePlace=False,oblige=True, numero=None): - #print ('changeValeur') - if self.inhibe == True: return - if hasattr(self,'LEFiltre') :self.noircirResultatFiltre() - self.listeValeursCourantesAvant=self.listeValeursCourantes - self.listeValeursCourantes = [] - - for i in range (1,len(self.listeAAfficher)+1): - nomLineEdit="lineEditVal"+str(i) - courant=getattr(self,nomLineEdit) - if not (courant.isChecked()):continue - valeur=courant.text() - if valeur != None and valeur != "" : - commentaire=self.ajout1Valeur(valeur) - if (commentaire != None ): - self.editor.afficheInfos(commentaire,Qt.red) - self.listeValeursCourantesAvant=self.listeValeursCourantes - self.setValeurs() - - min,max = self.node.item.getMinMax() - if len(self.listeValeursCourantes) < min : - self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) - elif len(self.listeValeursCourantes) > max : - self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) - - if self.listeValeursCourantes== [] : self.node.item.setValeur([]) - else : self.node.item.setValeur(self.listeValeursCourantes) - - # Exception pour PSEN - if min==0 and self.listeValeursCourantes== []: self.node.item.setValeur([]) - self.setValide() - - - def prepareListeResultatFiltre(self): - #print ('prepareListeResultatFiltre') - filtre=str(self.LEFiltre.text()) - for cb in self.listeCB: - texte=cb.text() - if texte.find(filtre) == 0 : - palette = QPalette(Qt.red) - palette.setColor(QPalette.WindowText,Qt.red) - cb.setPalette(palette) - t=cb.text() - cb.setText(t) - self.listeCbRouge.append(cb) - - def prepareListeResultat(self): - #print ('prepareListeResultat') - self.clearAll() - self.setValeurs() - - def clearAll(self): - #print ('clearAll') - for cb in self.listeCB : - cb.setText("") - - + return(comm2+" "+comm) + + + + def changeValeur(self): + #def changeValeur(self,changeDePlace=False,oblige=True, numero=None): + #print ('changeValeur') + if self.inhibe == True: return + if hasattr(self,'LEFiltre') :self.noircirResultatFiltre() + self.listeValeursCourantesAvant=self.listeValeursCourantes + self.listeValeursCourantes = [] + + for i in range (1,len(self.listeAAfficher)+1): + nomLineEdit="lineEditVal"+str(i) + courant=getattr(self,nomLineEdit) + if not (courant.isChecked()):continue + valeur=courant.text() + if valeur != None and valeur != "" : + commentaire=self.ajout1Valeur(valeur) + if (commentaire != None ): + self.editor.afficheInfos(commentaire,Qt.red) + self.listeValeursCourantesAvant=self.listeValeursCourantes + self.setValeurs() + + min,max = self.node.item.getMinMax() + if len(self.listeValeursCourantes) < min : + self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) + elif len(self.listeValeursCourantes) > max : + self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) + + if self.listeValeursCourantes== [] : self.node.item.setValeur([]) + else : self.node.item.setValeur(self.listeValeursCourantes) + + # Exception pour PSEN + if min==0 and self.listeValeursCourantes== []: self.node.item.setValeur([]) + self.setValide() + self.reaffiche() + + + def prepareListeResultatFiltre(self): + #print ('prepareListeResultatFiltre') + filtre=str(self.LEFiltre.text()) + for cb in self.listeCB: + texte=cb.text() + if texte.find(filtre) == 0 : + palette = QPalette(Qt.red) + palette.setColor(QPalette.WindowText,Qt.red) + cb.setPalette(palette) + t=cb.text() + cb.setText(t) + self.listeCbRouge.append(cb) + + def prepareListeResultat(self): + #print ('prepareListeResultat') + self.clearAll() + self.setValeurs() + + def clearAll(self): + #print ('clearAll') + for cb in self.listeCB : + cb.setText("") diff --git a/InterfaceQT4/monWidgetPlusieursIntoOrdonne.py b/InterfaceQT4/monWidgetPlusieursIntoOrdonne.py index 3b33ec92..f0496328 100644 --- a/InterfaceQT4/monWidgetPlusieursIntoOrdonne.py +++ b/InterfaceQT4/monWidgetPlusieursIntoOrdonne.py @@ -20,15 +20,16 @@ # Modules Python from __future__ import absolute_import try : - from builtins import str - from builtins import range + from builtins import str + from builtins import range except : pass import types,os,sys +import traceback # Modules Eficas from .feuille import Feuille -from desWidgetPlusieursIntoOrdonne import Ui_WidgetPlusieursIntoOrdonne +from desWidgetPlusieursIntoOrdonne import Ui_WidgetPlusieursIntoOrdonne from .politiquesValidation import PolitiquePlusieurs from .qtSaisie import SaisieValeur from .gereListe import GereListe @@ -44,7 +45,7 @@ from PyQt5.QtGui import QIcon, QPalette class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,GereListe,GerePlie): - def __init__(self,node,monSimpDef,nom,objSimp,parent,commande): + def __init__(self,node,monSimpDef,nom,objSimp,parent,commande): self.nomLine="LEResultat" self.listeLE=[] self.ouAjouter=0 @@ -57,10 +58,10 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere self.gereIconePlier() self.listeValeursCourantes=self.node.item.getListeValeurs() try : - self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + self.maCommande.listeAffichageWidget.append(self.lineEditVal1) except : - # cas ou on ne peut rien ajouter - pass + # cas ou on ne peut rien ajouter + pass self.prepareListeResultat() if len(self.listeAAfficher) < 20 : self.frameRecherche2.close() if len(self.listeAAfficher) < 20 : self.frameRecherche.close() @@ -85,149 +86,148 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere self.parentQt.commandesLayout.insertWidget(-1,self) self.listeRouge=[] - - def prepareListeResultat(self): - for i in self.listeLE: i.close() - self.listeLE=[] - self.vScrollBar = self.scrollArea.verticalScrollBar() - self.listeValeursCourantes=self.node.item.getListeValeurs() - if hasattr(self.node.item.definition.validators,'set_MCSimp'): + + def prepareListeResultat(self): + for i in self.listeLE: i.close() + self.listeLE=[] + self.vScrollBar = self.scrollArea.verticalScrollBar() + self.listeValeursCourantes=self.node.item.getListeValeurs() + if hasattr(self.node.item.definition.validators,'set_MCSimp'): obj=self.node.item.getObject() self.node.item.definition.validators.set_MCSimp(obj) if self.node.item.isValid() == 0 : - liste=[] - for item in self.listeValeursCourantes: - if self.node.item.definition.validators.verifItem(item)==1: liste.append(item) - self.listeAAfficher=self.node.item.getListePossible(liste) - else: - self.listeAAfficher=self.node.item.getListePossible([]) - else : + liste=[] + for item in self.listeValeursCourantes: + if self.node.item.definition.validators.verifItem(item)==1: liste.append(item) + self.listeAAfficher=self.node.item.getListePossible(liste) + else: + self.listeAAfficher=self.node.item.getListePossible([]) + else : self.listeAAfficher=self.node.item.getListePossible(self.listeValeursCourantes) - if self.listeAAfficher==[] : - self.ajoutLE(0) - return - self.filtreListe() - if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400) - else : - if self.monSimpDef.min > len(self.listeAAfficher) : self.setMinimumHeight(self.monSimpDef.min*30+300) - elif self.monSimpDef.max > len(self.listeAAfficher) : self.setMinimumHeight(400) - else : self.setMinimumHeight(len(self.listeAAfficher)*30+30) - self.setMinimumHeight(300) - print ('jjjjjj hauteur 300') - self.adjustSize() + if self.listeAAfficher==[] : + self.ajoutLE(0) + return + self.filtreListe() + if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400) + else : + if self.monSimpDef.min > len(self.listeAAfficher) : self.setMinimumHeight(self.monSimpDef.min*30+300) + elif self.monSimpDef.max > len(self.listeAAfficher) : self.setMinimumHeight(400) + else : self.setMinimumHeight(len(self.listeAAfficher)*30+30) + self.setMinimumHeight(300) + self.adjustSize() + + self.politique=PolitiquePlusieurs(self.node,self.editor) + for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i) + for i in range(len(self.listeAAfficher)): + nomLE="lineEditVal"+str(i+1) + courant=getattr(self,nomLE) + courant.setText(str(self.listeAAfficher[i])) + self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) + if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche') : self.frameRecherche.close() + if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche2') : self.frameRecherche2.close() - self.politique=PolitiquePlusieurs(self.node,self.editor) - for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i) - for i in range(len(self.listeAAfficher)): - nomLE="lineEditVal"+str(i+1) - courant=getattr(self,nomLE) - courant.setText(str(self.listeAAfficher[i])) - self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) - if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche') : self.frameRecherche.close() - if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche2') : self.frameRecherche2.close() - - - def setValeurs(self,first=True): - self.listeValeursCourantes=self.node.item.getListeValeurs() - if first : - if self.monSimpDef.max == "**" or self.monSimpDef.max == float('inf') : aConstruire=7 - else : aConstruire=self.monSimpDef.max - if len(self.listeValeursCourantes) > aConstruire : aConstruire=len(self.listeValeursCourantes) - self.indexDernierLabel = aConstruire - for i in range(1,aConstruire+1): self.ajoutLEResultat(i) - index=1 - for val in self.listeValeursCourantes : - nomLE="LEResultat"+str(index) - courant=getattr(self,nomLE) - courant.setText(str(val)) - courant.setReadOnly(True) - index=index+1 - while (index < self.indexDernierLabel) : - nomLE="LEResultat"+str(index) - courant=getattr(self,nomLE) - courant.setText("") - courant.setReadOnly(True) - index=index+1 - #self.prepareListeResultat() - def moinsPushed(self): - self.ouAjouter=self.ouAjouter-1 - GereListe.moinsPushed(self) - self.setValeurs(first=False) + def setValeurs(self,first=True): + self.listeValeursCourantes=self.node.item.getListeValeurs() + if first : + if self.monSimpDef.max == "**" or self.monSimpDef.max == float('inf') : aConstruire=7 + else : aConstruire=self.monSimpDef.max + if len(self.listeValeursCourantes) > aConstruire : aConstruire=len(self.listeValeursCourantes) + self.indexDernierLabel = aConstruire + for i in range(1,aConstruire+1): self.ajoutLEResultat(i) + index=1 + for val in self.listeValeursCourantes : + nomLE="LEResultat"+str(index) + courant=getattr(self,nomLE) + courant.setText(str(val)) + courant.setReadOnly(True) + index=index+1 + while (index < self.indexDernierLabel) : + nomLE="LEResultat"+str(index) + courant=getattr(self,nomLE) + courant.setText("") + courant.setReadOnly(True) + index=index+1 + #self.prepareListeResultat() + + def moinsPushed(self): + self.ouAjouter=self.ouAjouter-1 + GereListe.moinsPushed(self) + self.setValeurs(first=False) - def prepareListeResultatFiltre(self): - for i in self.listeRouge : - nomLE="lineEditVal"+str(i+1) - courant=getattr(self,nomLE) - texte=courant.text() - palette = QPalette(Qt.black) - palette.setColor(QPalette.WindowText,Qt.black) - courant.setPalette(palette) - courant.setText(texte) - - self.listeRouge = [] - filtre=str(self.LEFiltre.text()) - if filtre == '' : return - for i in range(len(self.listeAAfficher)): - nomLE="lineEditVal"+str(i+1) - courant=getattr(self,nomLE) - texte=courant.text() - if texte.find(filtre) == 0 : - palette = QPalette(Qt.red) - palette.setColor(QPalette.WindowText,Qt.red) - courant.setPalette(palette) - courant.setText(texte) - self.listeRouge.append(i) + def prepareListeResultatFiltre(self): + for i in self.listeRouge : + nomLE="lineEditVal"+str(i+1) + courant=getattr(self,nomLE) + texte=courant.text() + palette = QPalette(Qt.black) + palette.setColor(QPalette.WindowText,Qt.black) + courant.setPalette(palette) + courant.setText(texte) - def cleanListeResultatFiltre(self): - self.LEFiltre.setText('') - self.prepareListeResultatFiltre() + self.listeRouge = [] + filtre=str(self.LEFiltre.text()) + if filtre == '' : return + for i in range(len(self.listeAAfficher)): + nomLE="lineEditVal"+str(i+1) + courant=getattr(self,nomLE) + texte=courant.text() + if texte.find(filtre) == 0 : + palette = QPalette(Qt.red) + palette.setColor(QPalette.WindowText,Qt.red) + courant.setPalette(palette) + courant.setText(texte) + self.listeRouge.append(i) - def ajoutLEResultat (self,index,valeur=None): - #print ('ajoutLEResultat', index, valeur) - nomLE="LEResultat"+str(index) - if not (hasattr(self,nomLE)) : - nouveauLE = LECustom(self.scrollAreaRE,self,index) - nouveauLE.setFrame(False) - self.CBChoisis.insertWidget(self.ouAjouter,nouveauLE) - self.ouAjouter=self.ouAjouter+1 - nouveauLE.setReadOnly(True) + def cleanListeResultatFiltre(self): + self.LEFiltre.setText('') + self.prepareListeResultatFiltre() + + def ajoutLEResultat (self,index,valeur=None): + #print ('ajoutLEResultat', index, valeur) + nomLE="LEResultat"+str(index) + if not (hasattr(self,nomLE)) : + nouveauLE = LECustom(self.scrollAreaRE,self,index) + nouveauLE.setFrame(False) + self.CBChoisis.insertWidget(self.ouAjouter,nouveauLE) + self.ouAjouter=self.ouAjouter+1 + nouveauLE.setReadOnly(True) + if index % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)") + else : nouveauLE.setStyleSheet("background:rgb(240,240,240)") + self.vScrollBarRE = self.scrollAreaRE.verticalScrollBar() + self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum) + setattr(self,nomLE,nouveauLE) + self.estVisibleRE=nouveauLE + else : + nouveauLE=getattr(self,nomLE) + + if valeur == None : nouveauLE.setText("") + else : nouveauLE.setText(str(valeur)) + + def ajoutLE(self,index,valeur=None): + #print ('ajoutLE') + nomLE="lineEditVal"+str(index) + nouveauLE = MonLabelListeClic(self) + #self.CBLayout.addWidget(nouveauLE) + self.CBLayout.insertWidget(index -1,nouveauLE) + self.listeLE.append(nouveauLE) + nouveauLE.setFrameShape(QFrame.NoFrame) + QApplication.processEvents() + nouveauLE.setText("") if index % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)") - else : nouveauLE.setStyleSheet("background:rgb(240,240,240)") - self.vScrollBarRE = self.scrollAreaRE.verticalScrollBar() - self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum) + else : nouveauLE.setStyleSheet("background:rgb(240,240,240)") + self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum) + nouveauLE.setFocus() setattr(self,nomLE,nouveauLE) - self.estVisibleRE=nouveauLE - else : - nouveauLE=getattr(self,nomLE) - if valeur == None : nouveauLE.setText("") - else : nouveauLE.setText(str(valeur)) - - def ajoutLE(self,index,valeur=None): - #print ('ajoutLE') - nomLE="lineEditVal"+str(index) - nouveauLE = MonLabelListeClic(self) - #self.CBLayout.addWidget(nouveauLE) - self.CBLayout.insertWidget(index -1,nouveauLE) - self.listeLE.append(nouveauLE) - nouveauLE.setFrameShape(QFrame.NoFrame) - QApplication.processEvents() - nouveauLE.setText("") - if index % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)") - else : nouveauLE.setStyleSheet("background:rgb(240,240,240)") - self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum) - nouveauLE.setFocus() - setattr(self,nomLE,nouveauLE) - - def ajoutLineEdit(self): - #print ('ajoutLineEdit') - self.indexDernierLabel=self.indexDernierLabel+1 - self.ajoutLEResultat (self.indexDernierLabel) + def ajoutLineEdit(self): + #print ('ajoutLineEdit') + self.indexDernierLabel=self.indexDernierLabel+1 + self.ajoutLEResultat (self.indexDernierLabel) - def traiteClicSurLabelListe(self,valeur): + def traiteClicSurLabelListe(self,valeur): if valeur == None : return liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur)) if validite == 0 : return @@ -236,70 +236,71 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere self.listeValeursCourantes=self.node.item.getListeValeurs() min,max = self.node.item.getMinMax() - if len(self.listeValeursCourantes) +1 > max : - self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) - return + if len(self.listeValeursCourantes) +1 > max : + self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) + return else : - self.editor.afficheInfos("") + self.editor.afficheInfos("") affiche=False for i in range(1,self.indexDernierLabel+1): - nomLE="LEResultat"+str(i) - courant=getattr(self,nomLE) - if str(courant.text())==str("") : - courant.setText(valeur) - courant.setReadOnly(True) - affiche=True - self.estVisibleRE=courant - QTimer.singleShot(1, self.rendVisibleLigneRE) - break - + nomLE="LEResultat"+str(i) + courant=getattr(self,nomLE) + if str(courant.text())==str("") : + courant.setText(valeur) + courant.setReadOnly(True) + affiche=True + self.estVisibleRE=courant + QTimer.singleShot(1, self.rendVisibleLigneRE) + break + if affiche == False: - self.indexDernierLabel = self.indexDernierLabel+1 - self.ajoutLEResultat (self.indexDernierLabel,str(valeur)) - self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum) - QTimer.singleShot(1, self.rendVisibleLigneRE) + self.indexDernierLabel = self.indexDernierLabel+1 + self.ajoutLEResultat (self.indexDernierLabel,str(valeur)) + self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum) + QTimer.singleShot(1, self.rendVisibleLigneRE) self.changeValeur() self.setValeurs(first=False) - def changeValeur(self,changeDePlace=False,oblige=False): + def changeValeur(self,changeDePlace=False,oblige=False): #def changeValeur(self,changeDePlace=False,oblige=False, numero=None): #PN les 2 arg sont pour que la signature de ma fonction soit identique a monWidgetPlusieursBase + print ('changeValeur de objet') listeVal=[] for i in range(1,self.indexDernierLabel+1): - nomLE="LEResultat"+str(i) - courant=getattr(self,nomLE) - valeur=courant.text() - if str(valeur)=="" : continue - liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur)) - listeVal.append(str(valeur)) + nomLE="LEResultat"+str(i) + courant=getattr(self,nomLE) + valeur=courant.text() + if str(valeur)=="" : continue + liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur)) + listeVal.append(str(valeur)) validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(listeVal,-1,[]) - + self.listeValeursCourantes=self.node.item.getListeValeurs() min,max = self.node.item.getMinMax() - if len(self.listeValeursCourantes) < min : - self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) + if len(self.listeValeursCourantes) < min : + self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) else : - self.editor.afficheInfos("") - + self.editor.afficheInfos("") + if len(listeRetour) == 0 : - self.node.item.setValeur(None) + self.node.item.setValeur(None) elif validite : - self.node.item.setValeur(listeRetour) + self.node.item.setValeur(listeRetour) else : - commentaire=comm+" "+comm2 - self.editor.afficheInfos(commentaire,Qt.red) + commentaire=comm+" "+comm2 + self.editor.afficheInfos(commentaire,Qt.red) self.setValide() + self.reaffiche() + print ('changeValeur de objet') # - def rendVisibleLigneRE(self): - QApplication.processEvents() - self.estVisibleRE.setFocus() - self.scrollArea.ensureWidgetVisible(self.estVisibleRE,0,0) + def rendVisibleLigneRE(self): + QApplication.processEvents() + self.estVisibleRE.setFocus() + self.scrollArea.ensureWidgetVisible(self.estVisibleRE,0,0) # - def rendVisibleLigne(self): - self.estVisibleRE=self.estVisible - #rendVisibleLigneRE() - - + def rendVisibleLigne(self): + self.estVisibleRE=self.estVisible + #rendVisibleLigneRE()