X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FqtSaisie.py;h=40e1e521fc8f763886086c55e11a479ca2b0bb2c;hb=f1fe188d679966c43c6e965bde6d63bd89451262;hp=531447212262896aebfe004acbb5d4884b976695;hpb=69ed0ccae7884aee37bbe54cb1af2983cb51492d;p=tools%2Feficas.git diff --git a/InterfaceQT4/qtSaisie.py b/InterfaceQT4/qtSaisie.py index 53144721..40e1e521 100644 --- a/InterfaceQT4/qtSaisie.py +++ b/InterfaceQT4/qtSaisie.py @@ -1,74 +1,100 @@ # -*- coding: utf-8 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # Modules Python import string,types,os from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * +from Extensions.i18n import tr + # Import des panels class SaisieValeur: """ - Classe contenant les méthodes communes aux panels + Classe contenant les méthodes communes aux panels permettant de choisir des valeurs """ def __init__(self): - pass + pass def InitListBoxASSD(self): listeNomsSD = self.node.item.get_sd_avant_du_bon_type() for aSD in listeNomsSD: self.listBoxASSD.addItem( aSD) - QObject.connect(self.listBoxASSD, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicASSD ) + QObject.connect(self.listBoxASSD, SIGNAL("doubleClicked(QListWidgetItem*)" ), self.ClicASSD ) min,max = self.node.item.GetMinMax() l= self.node.item.GetListeValeurs() if (min == 1 and min == max and len(listeNomsSD)==1 and (l==[] or l==None)): if ('R' not in self.node.item.get_type()) : - self.listBoxASSD.setCurrentItem(0) + self.listBoxASSD.setCurrentRow(0) def BuildLBValeurs(self): self.LBValeurs.clear() listeValeurs=self.node.item.GetListeValeurs() + #print self.node.item.definition.validators for valeur in listeValeurs: - self.LBValeurs.addItem(str(valeur)) + try : + val=self.politique.GetValeurTexte(valeur) + except : + val=valeur + self.LBValeurs.addItem(str(val)) if listeValeurs != None and listeValeurs != [] : self.LBValeurs.setCurrentRow(len(listeValeurs) - 1) - def RemplitPanel(self,listeDejaLa=[]): + def RemplitPanel(self,listeDejaLa=[],alpha=0): self.listBoxVal.clear() + # Traitement particulier pour le validator VerifExistence + # dont les valeurs possibles peuvent changer : into variable + 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 listeDejaLa: + if self.node.item.definition.validators.verif_item(item)==1: + liste.append(item) + self.node.item.set_valeur(liste) + self.BuildLBValeurs() + self.listeValeursCourantes=liste + self.editor.affiche_infos(tr("Attention, valeurs modifiees"), Qt.red) + listeDejaLa=liste lChoix=self.node.item.get_liste_possible(listeDejaLa) + if ((len(lChoix) < 10 ) and (hasattr (self,'BAlpha'))) : self.BAlpha.close() + if alpha==1 : lChoix.sort() for valeur in lChoix : self.listBoxVal.addItem( str(valeur) ) if len(lChoix) == 1 : - self.listBoxVal.setCurrentRow(1) + self.listBoxVal.setCurrentRow(0) + self.listBoxVal.item(0).setSelected(1) + self.bOk.setFocus() + def ClicASSD(self): if self.listBoxASSD.currentItem()== None : return valeurQstring=self.listBoxASSD.currentItem().text() - commentaire = QString("Valeur selectionnée : ") - commentaire.append(valeurQstring) + commentaire = tr("Valeur selectionnee : ") + commentaire+=valeurQstring self.Commentaire.setText(commentaire) valeur=str(valeurQstring) validite,commentaire=self.politique.RecordValeur(valeur) @@ -85,14 +111,14 @@ class SaisieValeur: def BOkPressed(self): if self.listBoxVal.currentItem()==None : - commentaire = "Pas de valeur selectionnée" + commentaire = tr("Pas de valeur selectionnee" ) self.Commentaire.setText(QString(commentaire)) else : self.ClicValeur() def BOk2Pressed(self): if str(self.lineEditVal.text())== "" : - commentaire = "Pas de valeur entrée " + commentaire = tr("Pas de valeur entree" ) self.Commentaire.setText(QString(commentaire)) else : self.LEValeurPressed() @@ -101,14 +127,32 @@ class SaisieValeur: if valeur == None : nouvelleValeur=str(self.lineEditVal.text()) else : - self.lineEditVal.setText(QString(valeur.nom)) + if hasattr(self,"lineEditVal"):self.lineEditVal.setText(QString(valeur.nom)) nouvelleValeur=valeur validite,commentaire=self.politique.RecordValeur(nouvelleValeur) if commentaire != "" : + #PNPNPNP Il faut trouver une solution pour les 2 cas + # self.editor.affiche_infos(commentaire) #self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) + if validite : + self.editor.affiche_infos(commentaire) + else : + self.editor.affiche_infos(commentaire,Qt.red) + self.setValide() + def TraiteLEValeurTuple(self) : + listeValeurs=[] + valeurBrute=str(self.LEValeur.text()) + listeValeursSplit=valeurBrute.split(',') + for val in listeValeursSplit : + try : + valeur=eval(val,{}) + except : + valeur=val + listeValeurs.append(valeur) + return listeValeurs + def TraiteLEValeur(self,valeurTraitee=None) : # lit la chaine entree dans le line edit # et la tranforme en chaine de valeurs @@ -137,12 +181,12 @@ class SaisieValeur: listeValeurs.append(t) indice=indice+3 except : - commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" + commentaire = tr("Veuillez entrer le complexe sous forme aster ou sous forme python") self.editor.affiche_infos(commentaire) return listeValeurs,0 - else : # ce n'est pas un tuple à la mode aster + else : # ce n'est pas un tuple a la mode aster listeValeurs.append(v) indice = indice + 1 @@ -152,7 +196,7 @@ class SaisieValeur: elif type(valeur) == types.StringType: listeValeurs=valeur.split(',') else: - listeValeurs.append(valeur) + listeValeurs.append(valeurBrute) return listeValeurs,1 @@ -163,7 +207,7 @@ class SaisieSDCO : def LESDCOReturnPressed(self): """ - Lit le nom donné par l'utilisateur au concept de type CO qui doit être + Lit le nom donné par l'utilisateur au concept de type CO qui doit être la valeur du MCS courant et stocke cette valeur """ self.editor.init_modif() @@ -180,10 +224,10 @@ class SaisieSDCO : test,commentaire=self.node.item.set_valeur_co(nomConcept) if test: - commentaire="Valeur du mot-clé enregistree" + commentaire=tr("Valeur du mot-clef enregistree") self.node.update_node_valid() else : cr = self.node.item.get_cr() - commentaire = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() + commentaire = tr("Valeur du mot-clef non autorisee :")+cr.get_mess_fatal() self.node.item.set_valeur_co(anc_val) - self.Commentaire.setText(QString(commentaire)) + self.Commentaire.setText(QString.fromUtf8(QString(commentaire)))