X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FgereListe.py;h=f08adac3b21b98ee0d86001a12781016aed31d9a;hb=3b2aa4435996023b38c1c749799a956909684b7c;hp=518b24e6d8368d936f143fe360c6560afdb6079f;hpb=619506f9306236fa6673b8ec862b5e65cd5d41d9;p=tools%2Feficas.git diff --git a/InterfaceQT4/gereListe.py b/InterfaceQT4/gereListe.py index 518b24e6..f08adac3 100644 --- a/InterfaceQT4/gereListe.py +++ b/InterfaceQT4/gereListe.py @@ -18,14 +18,26 @@ # 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 + from builtins import range + from builtins import object +except : pass + +import types,os import traceback -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * + +import six +from six.moves import range +from PyQt5.QtWidgets import QLineEdit, QLabel, QFileDialog +from PyQt5.QtCore import QEvent, Qt +from PyQt5.QtGui import QIcon, QPalette + from Extensions.i18n import tr -from monViewTexte import ViewText +from InterfaceQT4.monViewTexte import ViewText # ---------------------- # @@ -36,23 +48,31 @@ class LECustom(QLineEdit): Constructor """ QLineEdit.__init__(self,parent) + self.parentQt=parentQt self.num=i self.dansUnTuple=False + self.numDsLaListe=-1 def focusInEvent(self,event): #print "dans focusInEvent de LECustom" self.parentQt.LineEditEnCours=self self.parentQt.NumLineEditEnCours=self.num + self.parentQt.textSelected=self.text() self.setStyleSheet("border: 2px solid gray") QLineEdit.focusInEvent(self,event) def focusOutEvent(self,event): - #print "dans focusOutEvent de LECustom" self.setStyleSheet("border: 0px") if self.dansUnTuple : self.setStyleSheet("background:rgb(235,235,235); border: 0px;") elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)") else : self.setStyleSheet("background:rgb(235,235,235)") + + + if isinstance(self,LECustomTuple) and not self.tupleCustomParent.inFocusOutEvent: + self.tupleCustomParent.inFocusOutEvent=True + self.tupleCustomParent.valueChange() + self.tupleCustomParent.inFocusOutEvent=False QLineEdit.focusOutEvent(self,event) def clean(self): @@ -64,6 +84,8 @@ class LECustom(QLineEdit): def setValeur(self,valeur): self.setText(valeur) + + # --------------------------- # class LECustomTuple(LECustom): # --------------------------- # @@ -71,6 +93,7 @@ class LECustomTuple(LECustom): # index sera mis a jour par TupleCustom parentQt=parent.parent().parent().parent() LECustom. __init__(self,parent,parentQt,0) + #print (dir(self)) # ---------------------------- # class MonLabelListeClic(QLabel): @@ -89,18 +112,64 @@ class MonLabelListeClic(QLabel): # ------------- # -class GereListe: +class GereListe(object): # ------------- # def __init__(self): self.connecterSignaux() + def connecterSignauxQT4(self): + if hasattr(self,'RBHaut'): + self.connect(self.RBHaut,SIGNAL("clicked()"),self.hautPushed) + self.connect(self.RBBas,SIGNAL("clicked()"),self.basPushed) + self.connect(self.RBMoins,SIGNAL("clicked()"),self.moinsPushed) + self.connect(self.RBPlus,SIGNAL("clicked()"),self.plusPushed) + self.connect(self.RBVoisListe,SIGNAL("clicked()"),self.voisListePushed) + if hasattr(self,'PBAlpha'): + self.connect(self.PBAlpha,SIGNAL("clicked()"),self.alphaPushed) + self.connect(self.PBCata,SIGNAL("clicked()"),self.cataPushed) + self.connect(self.PBFind,SIGNAL("clicked()"),self.findPushed) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEFiltreReturnPressed) + def connecterSignaux(self): - self.connect(self.RBHaut,SIGNAL("clicked()"),self.hautPushed) - self.connect(self.RBBas,SIGNAL("clicked()"),self.basPushed) - self.connect(self.RBMoins,SIGNAL("clicked()"),self.moinsPushed) - self.connect(self.RBPlus,SIGNAL("clicked()"),self.plusPushed) - self.connect(self.RBVoisListe,SIGNAL("clicked()"),self.voisListePushed) + if hasattr(self,'RBHaut'): + self.RBHaut.clicked.connect(self.hautPushed) + self.RBBas.clicked.connect(self.basPushed) + self.RBMoins.clicked.connect(self.moinsPushed) + self.RBPlus.clicked.connect(self.plusPushed) + self.RBVoisListe.clicked.connect(self.voisListePushed) + if hasattr(self,'PBAlpha'): + self.PBCata.clicked.connect(self.cataPushed) + self.PBAlpha.clicked.connect(self.alphaPushed) + self.PBFind.clicked.connect(self.findPushed) + self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed) + + def filtreListe(self): + l=[] + if self.filtre != "" : + for i in self.listeAAfficher : + if i.find(self.filtre) == 0 :l.append(i) + self.listeAAfficher=l + if self.alpha : self.listeAAfficher.sort() + + def LEFiltreReturnPressed(self): + self.filtre= self.LEFiltre.text() + self.prepareListeResultatFiltre() + + def findPushed(self): + self.filtre= self.LEFiltre.text() + self.prepareListeResultatFiltre() + + def alphaPushed(self): + #print "alphaPushed" ,self.alpha + if self.alpha == 1 : return + self.alpha=1 + self.prepareListeResultat() + + def cataPushed(self): + if self.alpha == 0 : return + self.alpha=0 + self.prepareListeResultat() def hautPushed(self): if self.NumLineEditEnCours == 1 : return @@ -136,6 +205,7 @@ class GereListe: def moinsPushed(self): # on supprime le dernier + if self.NumLineEditEnCours == 0 : return if self.NumLineEditEnCours==self.indexDernierLabel : nomLineEdit=self.nomLine+str(self.indexDernierLabel) courant=getattr(self,nomLineEdit) @@ -144,12 +214,9 @@ class GereListe: for i in range (self.NumLineEditEnCours, self.indexDernierLabel): aRemonter=i+1 nomLineEdit=self.nomLine+str(aRemonter) - print nomLineEdit courant=getattr(self,nomLineEdit) valeurARemonter=courant.getValeur() - print valeurARemonter nomLineEdit=self.nomLine+str(i) - print nomLineEdit courant=getattr(self,nomLineEdit) if valeurARemonter != None : courant.setValeur(valeurARemonter) else : courant.clean() @@ -161,11 +228,20 @@ class GereListe: def plusPushed(self): if self.indexDernierLabel == self.monSimpDef.max: - self.editor.affiche_infos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red) + if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide() + else : self.editor.affiche_infos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red) return self.ajoutLineEdit() self.descendLesLignes() + def chercheLigneVide(self): + for i in range(self.indexDernierLabel) : + nomLineEdit=self.nomLine+str(i+1) + courant=getattr(self,nomLineEdit) + valeur=courant.getValeur() + if valeur=="" : courant.setFocus(7);return + + def descendLesLignes(self): if self.NumLineEditEnCours==self.indexDernierLabel : return nomLineEdit=self.nomLine+str(self.NumLineEditEnCours+1) @@ -183,7 +259,6 @@ class GereListe: self.scrollArea.ensureWidgetVisible(self.LineEditEnCours) def voisListePushed(self): - print "voisListePushed" texteValeurs="" for v in self.node.item.GetListeValeurs(): texteValeurs+=str(v)+", " @@ -193,18 +268,53 @@ class GereListe: def selectInFile(self): - print "selectInFile" - init=QString( self.editor.CONFIGURATION.savedir) + init=str( self.editor.CONFIGURATION.savedir) fn = QFileDialog.getOpenFileName(self.node.appliEficas, tr("Fichier de donnees"), init, tr('Tous les Fichiers (*)',)) + fn=fn[0] if fn == None : return if fn == "" : return - ulfile = os.path.abspath(unicode(fn)) + ulfile = os.path.abspath(six.text_type(fn)) self.editor.CONFIGURATION.savedir=os.path.split(ulfile)[0] - from monSelectVal import MonSelectVal + from .monSelectVal import MonSelectVal MonSelectVal(file=fn,parent=self).show() + def noircirResultatFiltre(self): + filtre=str(self.LEFiltre.text()) + for cb in self.listeCbRouge: + palette = QPalette(Qt.red) + palette.setColor(QPalette.WindowText,Qt.black) + cb.setPalette(palette) + t=cb.text() + cb.setText(t) + self.LEFiltre.setText("") + self.listeCbRouge = [] + +# ----------- # +class GerePlie(object): +# ----------- # + + def gereIconePlier(self): + if not(hasattr(self,'BFermeListe')) : return + self.editor.listeDesListesOuvertes.add(self.node.item) + repIcon=self.node.editor.appliEficas.repIcon + if not (self.editor.afficheListesPliees): + fichier=os.path.join(repIcon, 'empty.png') + icon = QIcon(fichier) + self.BFermeListe.setIcon(icon) + return + fichier=os.path.join(repIcon, 'minusnode.png') + icon = QIcon(fichier) + self.BFermeListe.setIcon(icon) + self.BFermeListe.clicked.connect( self.selectWidgetPlie) + + def selectWidgetPlie(self): + self.editor.listeDesListesOuvertes.remove(self.node.item) + self.reaffichePourDeplier() + + +