]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT4/monSelectVal.py
Salome HOME
mse a jour du 07/03/2016 pour sauvegarde
[tools/eficas.git] / InterfaceQT4 / monSelectVal.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013   EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 # Modules Python
21 # Modules Eficas
22
23 from desSelectVal import Ui_DSelVal
24
25 fromm determine import monEnvQT5
26 if monEnvQT5:
27     from PyQt5.QtWidgets import QDialog
28     from PyQt5.QtCore import QTimer
29 else :
30     from PyQt4.QtGui  import *
31     from PyQt4.QtCore import *
32
33 class DSelVal(Ui_DSelVal,QDialog):
34    def __init__(self,parent ,modal ) :
35        QDialog.__init__(self,parent)
36        self.setupUi(self)
37
38 class MonSelectVal(DSelVal):
39   """
40   Classe definissant le panel associe aux mots-cles qui demandent
41   a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
42   discretes
43   """
44   def __init__(self,file,parent,name = None,fl = 0):
45         #print "MonSelectVal"
46         self.parent=parent
47         DSelVal.__init__(self,parent,0)
48         self.separateur=" "
49         self.texte=" "
50         self.textTraite=""
51         self.file=str(file)
52         self.readVal()
53         self.initVal()
54         self.connecterSignaux()
55
56   def connecterSignaux(self) :
57         self.Bespace.clicked.connect(self.SelectEsp)
58         self.BpointVirgule.clicked.connect(self.SelectPoint)
59         self.Bvirgule.clicked.connect(self.SelectVir)
60         self.BImportSel.clicked.connect(self.BImportSelPressed)
61         self.BImportTout.clicked.connect(self.BImportToutPressed)
62         self.parent.editor.sb.messageChanged(self.messageAChanger)
63
64   def connecterSignauxQT4(self) :
65         self.connect(self.Bespace,SIGNAL("clicked()"),self.SelectEsp)
66         self.connect(self.BpointVirgule,SIGNAL("clicked()"),self.SelectPoint)
67         self.connect(self.Bvirgule,SIGNAL("clicked()"),self.SelectVir)
68         self.connect(self.BImportSel,SIGNAL("clicked()"),self.BImportSelPressed)
69         self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed)
70         self.connect(self.parent.editor.sb,SIGNAL("messageChanged(QString)"),self.messageAChanger)
71
72   def messageAChanger(self):
73       message=self.parent.editor.sb.currentMessage()
74       mapalette=self.sb.palette()
75       from PyQt4.QtGui import QPalette
76       mapalette.setColor( QPalette.WindowText, self.parent.editor.couleur )
77       self.sb.setPalette( mapalette );
78       self.sb.setText(tr(message))
79       QTimer.singleShot(3000, self.efface)
80       
81   def efface(self):
82       self.sb.setText("")
83
84   def readVal(self):
85         if self.file == "" : return
86         f = open(self.file, "rb")
87         self.texte = f.read()
88         f.close()
89
90   def initVal(self):
91         self.TBtext.clear()
92         self.TBtext.setText(self.texte)
93
94   def SelectEsp(self):
95         self.separateur=" "
96         
97   def SelectVir(self):
98         self.separateur=","
99         
100   def SelectPoint(self):
101         self.separateur=";"
102         
103   def BImportSelPressed(self):
104
105         texte = self.TBtext.textCursor().selectedText()
106         textTraite=texte.replace(u'\u2029',"\n")
107         self.textTraite=str(textTraite)
108         self.Traitement()
109         
110   def BImportToutPressed(self):
111         self.textTraite=self.texte
112         self.Traitement()
113
114   def Traitement(self):
115         import string
116         if self.textTraite == "" : return
117         if self.textTraite[-1]=="\n" : self.textTraite=self.textTraite[0:-1]
118         self.textTraite=string.replace(self.textTraite,"\n",self.separateur)
119         liste1=self.textTraite.split(self.separateur)
120         liste=[]
121         for val in liste1 :
122           if val != '' and val != ' ' and val != self.separateur :
123             val=str(val)
124             try :
125                val2=eval(val,{})
126                liste.append(val2)
127             except :
128               pass
129         self.parent.ajoutNValeur(liste) 
130         
131