X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonWidgetPlusieursBase.py;h=edd81e450b7b49d8f7020fa23d110eab0a05c7ca;hb=96176d0080e0d4efbd29d98c0df700a64a82acdc;hp=a43800ab0e7f70d6f47c04509c1b5efe33514fe1;hpb=8ab70d9cc8975d6fb2790dfad0491cfe22f6683c;p=tools%2Feficas.git diff --git a/InterfaceQT4/monWidgetPlusieursBase.py b/InterfaceQT4/monWidgetPlusieursBase.py index a43800ab..edd81e45 100644 --- a/InterfaceQT4/monWidgetPlusieursBase.py +++ b/InterfaceQT4/monWidgetPlusieursBase.py @@ -18,24 +18,35 @@ # 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,sys + +from six.moves import range +from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QApplication, QMessageBox +from PyQt5.QtCore import QTimer, QSize, Qt # Modules Eficas -from PyQt4.QtGui import * -from PyQt4.QtCore import * from Extensions.i18n import tr -from feuille import Feuille +from .feuille import Feuille from desWidgetPlusieursBase import Ui_WidgetPlusieursBase -from politiquesValidation import PolitiquePlusieurs -from qtSaisie import SaisieValeur -from gereListe import GereListe -from gereListe import LECustom +from .politiquesValidation import PolitiquePlusieurs +from .qtSaisie import SaisieValeur +from .gereListe import GereListe +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): +class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): #print "MonWidgetPlusieursBase", nom @@ -46,17 +57,32 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): self.listeAffichageWidget=[] Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) GereListe.__init__(self) - self.connect(self.BSelectFichier,SIGNAL("clicked()"), self.selectInFile) + self.gereIconePlier() + self.BSelectFichier.clicked.connect(self.selectInFile) + + if sys.platform[0:5]!="linux": + repIcon=self.node.editor.appliEficas.repIcon + fichier=os.path.join(repIcon, 'arrow_up.png') + icon = QIcon(fichier) + self.RBHaut.setIcon(icon) + self.RBHaut.setIconSize(QSize(32, 32)) + fichier2=os.path.join(repIcon, 'arrow_down.png') + icon2 = QIcon(fichier2) + self.RBBas.setIcon(icon2) + fichier3=os.path.join(repIcon, 'file-explorer.png') + icon3 = QIcon(fichier2) + self.BSelectFichier.setIcon(icon3) + 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) + hauteurMax=dicoLongueur[self.monSimpDef.max] else : - self.resize(self.width(),hauteurMax) - self.setMinimumHeight(hauteurMax) + hauteurMax=220 + # if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur) + self.resize(self.width(),hauteurMax) + self.setMinimumHeight(hauteurMax) + self.finCommentaireListe() self.parentQt.commandesLayout.insertWidget(-1,self) self.maCommande.listeAffichageWidget.append(self.lineEditVal1) self.AAfficher=self.lineEditVal1 @@ -67,11 +93,13 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): 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 + 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() - qApp.processEvents() + QApplication.processEvents() self.scrollArea.ensureWidgetVisible(self.lineEditVal1) self.listeValeursCourantes=self.node.item.GetListeValeurs() index=1 @@ -80,13 +108,15 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): nomLineEdit="lineEditVal"+str(index) if hasattr(self,nomLineEdit) : courant=getattr(self,nomLineEdit) - courant.setText(str(val)) + if 'R' in self.objSimp.definition.type and str(val) != repr(val) : courant.setText(repr(val)) + else : courant.setText(str(val)) else : self.ajoutLineEdit(val) index=index+1 # 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) @@ -102,7 +132,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)") else : nouveauLE.setStyleSheet("background:rgb(235,235,235)") nouveauLE.setFrame(False) - self.connect(nouveauLE,SIGNAL("returnPressed()"),self.changeValeur) + nouveauLE.returnPressed.connect(self.changeValeur) setattr(self,nomLineEdit,nouveauLE) self.listeAffichageWidget.append(nouveauLE) self.etablitOrdre() @@ -122,32 +152,13 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): def rendVisibleLigne(self): - qApp.processEvents() + QApplication.processEvents() self.estVisible.setFocus() self.scrollArea.ensureWidgetVisible(self.estVisible,0,0) def finCommentaire(self): - commentaire="" - mc = self.node.item.get_definition() - d_aides = { 'TXM' : 'chaines de caracteres', - 'R' : 'reels', - 'I' : 'entiers', - 'C' : 'complexes'} - type = mc.type[0] - if not d_aides.has_key(type) : - if mc.min == mc.max: - commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ") - else : - commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ") - else : - if mc.min == mc.max: - commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type]) - else : - commentaire=tr("Entrez entre ")+str(mc.min)+(" et ")+str(mc.max) +" " +tr(d_aides[type]) - aideval=self.node.item.aide() - commentaire=commentaire + " " + QString.toUtf8(QString(aideval)) - return str(commentaire) + return self.finCommentaireListe() def ajout1Valeur(self,valeur=None): if valeur == None : return @@ -171,7 +182,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): # A priori, on ne fait rien pass - def AjoutNValeur(self,liste) : + def ajoutNValeur(self,liste) : for val in liste : i=1 ajoute=False @@ -179,7 +190,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): nomLineEdit="lineEditVal"+str(i) courant=getattr(self,nomLineEdit) valeur=courant.text() - if valeur == None or valeur == QString("") : + if valeur == None or valeur == "" : ajoute=True courant.setText(str(val)) commentaire=self.ajout1Valeur(val) @@ -198,6 +209,26 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): donneFocus=None derniereValeur=None self.listeValeursCourantes = [] + fin=self.indexDernierLabel + for i in range (1, fin): + nomLineEdit="lineEditVal"+str(i) + courant=getattr(self,nomLineEdit) + valeur=courant.text() + lval=valeur.split(',') + if len (lval) > 1 : + msgBox=QMessageBox() + msgBox.setText("separator ',' ") + msgBox.setInformativeText("Do you want to enter " + str (lval) + "?") + msgBox.setStandardButtons( QMessageBox.Ok | QMessageBox.Cancel) + msgBox.setDefaultButton(QMessageBox.Ok) + ret = msgBox.exec_() + if ret != 1024 : + courant.setText("") + return + courant.setText(lval[0]) + self.ajoutNValeur(lval[1:]) + self.listeValeursCourantes = [] + for i in range (1, self.indexDernierLabel+1): nomLineEdit="lineEditVal"+str(i) courant=getattr(self,nomLineEdit) @@ -213,6 +244,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): else : self.editor.affiche_infos("") elif donneFocus==None : donneFocus=courant + nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel) dernier=getattr(self,nomDernierLineEdit) derniereValeur=dernier.text()