1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
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.
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.
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
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 import string,types,os
25 from PyQt4.QtGui import *
26 from PyQt4.QtCore import *
27 from Extensions.i18n import tr
28 from monViewTexte import ViewText
31 # ---------------------- #
32 class LECustom(QLineEdit):
33 # ---------------------- #
34 def __init__(self,parent,parentQt,i):
38 QMainWindow.__init__(self,parent)
39 self.parentQt=parentQt
42 def focusInEvent(self,event):
43 print "dans focusInEvent de LECustom"
44 self.parentQt.LineEditEnCours=self
45 self.parentQt.NumLineEditEnCours=self.num
47 QLineEdit.focusInEvent(self,event)
49 def focusOutEvent(self,event):
51 QLineEdit.focusOutEvent(self,event)
53 # ---------------------------- #
54 class MonLabelListeClic(QLabel):
55 # ---------------------------- #
56 def __init__(self,parent):
57 QLabel.__init__(self,parent)
60 def event(self,event) :
61 if event.type() == QEvent.MouseButtonRelease:
62 self.texte=self.text()
63 self.parent.traiteClicSurLabelListe(self.texte)
64 return QLabel.event(self,event)
74 self.connecterSignaux()
76 def connecterSignaux(self):
77 self.connect(self.RBHaut,SIGNAL("clicked()"),self.hautPushed)
78 self.connect(self.RBBas,SIGNAL("clicked()"),self.basPushed)
79 self.connect(self.RBMoins,SIGNAL("clicked()"),self.moinsPushed)
80 self.connect(self.RBPlus,SIGNAL("clicked()"),self.plusPushed)
81 self.connect(self.RBVoisListe,SIGNAL("clicked()"),self.voisListePushed)
84 if self.NumLineEditEnCours == 1 : return
85 else : numEchange=self.NumLineEditEnCours-1
86 self.echange(self.NumLineEditEnCours,numEchange)
87 self.LineEditEnCours.setFocus(True)
88 self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
92 if self.NumLineEditEnCours == self.indexDernierLabel : return
93 else : numEchange=self.NumLineEditEnCours+1
94 self.echange(self.NumLineEditEnCours,numEchange)
95 self.LineEditEnCours.setFocus(True)
96 self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
98 def echange(self,num1,num2):
99 # on donne le focus au a celui ou on a bouge
100 # par convention le 2
101 nomLineEdit=self.nomLine+str(num1)
103 courant=getattr(self,nomLineEdit)
104 valeurAGarder=courant.text()
105 nomLineEdit2=self.nomLine+str(num2)
107 courant2=getattr(self,nomLineEdit2)
108 courant.setText(courant2.text())
109 courant2.setText(valeurAGarder)
110 self.changeValeur(changeDePlace=False)
111 self.NumLineEditEnCours=num2
112 self.LineEditEnCours=courant2
113 self.LineEditEnCours.setFocus(True)
115 def moinsPushed(self):
116 # on supprime le dernier
117 if self.NumLineEditEnCours==self.indexDernierLabel :
118 nomLineEdit=self.nomLine+str(aRemonter)
119 courant=getattr(self,nomLineEdit)
122 for i in range (self.NumLineEditEnCours, self.indexDernierLabel):
124 nomLineEdit=self.nomLine+str(aRemonter)
125 courant=getattr(self,nomLineEdit)
126 valeurARemonter=courant.text()
127 nomLineEdit=self.nomLine+str(i)
128 courant=getattr(self,nomLineEdit)
129 courant.setText(valeurARemonter)
130 nomLineEdit=self.nomLine+str(self.indexDernierLabel)
131 courant=getattr(self,nomLineEdit)
133 self.changeValeur(changeDePlace=False,oblige=True)
136 def plusPushed(self):
137 if self.indexDernierLabel == self.monSimpDef.max:
138 self.editor.affiche_infos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint')
141 if self.NumLineEditEnCours==self.indexDernierLabel : return
142 nomLineEdit=self.nomLine+str(self.NumLineEditEnCours+1)
143 courant=getattr(self,nomLineEdit)
144 valeurADescendre=courant.text()
146 for i in range (self.NumLineEditEnCours+1, self.indexDernierLabel):
148 nomLineEdit=self.nomLine+str(aDescendre)
149 courant=getattr(self,nomLineEdit)
150 valeurAGarder=courant.text()
151 courant.setText(valeurADescendre)
152 valeurADescendre=valeurAGarder
153 self.changeValeur(changeDePlace=False)
154 self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
156 def voisListePushed(self):
157 print "voisListePushed"
159 for v in self.node.item.GetListeValeurs():
160 texteValeurs+=str(v)+", "
161 entete="Valeurs pour "+self.nom
162 f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
166 def selectInFile(self):
168 init=QString( self.editor.CONFIGURATION.savedir)
169 fn = QFileDialog.getOpenFileName(self.node.appliEficas,
170 tr("Fichier de donnees"),
172 tr('Tous les Fichiers (*)',))
173 if fn == None : return
175 ulfile = os.path.abspath(unicode(fn))
176 self.editor.CONFIGURATION.savedir=os.path.split(ulfile)[0]
178 from monSelectVal import MonSelectVal
179 MonSelectVal(file=fn,parent=self).show()