X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FgereListe.py;h=f08adac3b21b98ee0d86001a12781016aed31d9a;hb=3b2aa4435996023b38c1c749799a956909684b7c;hp=a0426de075a44ae94e68415066af50085024e072;hpb=42895950e564e837c445896b5bac263370bdf37b;p=tools%2Feficas.git diff --git a/InterfaceQT4/gereListe.py b/InterfaceQT4/gereListe.py index a0426de0..f08adac3 100644 --- a/InterfaceQT4/gereListe.py +++ b/InterfaceQT4/gereListe.py @@ -18,19 +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 determine import monEnvQT5 -if monEnvQT5: - from PyQt5.QtWidgets import QLineEdit, QLabel, QIcon - from PyQt5.QtCore import QEvent -else : - 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 # ---------------------- # @@ -41,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): @@ -69,6 +84,8 @@ class LECustom(QLineEdit): def setValeur(self,valeur): self.setText(valeur) + + # --------------------------- # class LECustomTuple(LECustom): # --------------------------- # @@ -76,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): @@ -94,26 +112,64 @@ class MonLabelListeClic(QLabel): # ------------- # -class GereListe: +class GereListe(object): # ------------- # def __init__(self): - if monEnvQT5 :self.connecterSignaux() - else : self.connecterSignauxQT4() + self.connecterSignaux() def connecterSignauxQT4(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.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.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,'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 @@ -149,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) @@ -171,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) @@ -202,26 +268,39 @@ class GereListe: def selectInFile(self): - 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: +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') @@ -231,8 +310,7 @@ class GerePlie: fichier=os.path.join(repIcon, 'minusnode.png') icon = QIcon(fichier) self.BFermeListe.setIcon(icon) - if monEnvQT5 : self.BFermeListe.clicked.connect( self.selectWidgetPlie) - else : self.connect(self.BFermeListe,SIGNAL("clicked()"), self.selectWidgetPlie) + self.BFermeListe.clicked.connect( self.selectWidgetPlie) def selectWidgetPlie(self): self.editor.listeDesListesOuvertes.remove(self.node.item)