]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
travail sur monPlusieurs
authorpascale.noyret <pascale.noyret@edf.fr>
Fri, 9 Jan 2015 15:48:08 +0000 (16:48 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Fri, 9 Jan 2015 15:48:08 +0000 (16:48 +0100)
17 files changed:
CarmelCND/acquiertGroupes.py [new file with mode: 0644]
InterfaceQT4/browser.py
InterfaceQT4/compoproc.py
InterfaceQT4/editor.py
InterfaceQT4/feuille.py
InterfaceQT4/gereIcones.py
InterfaceQT4/gereListe.py
InterfaceQT4/groupe.py
InterfaceQT4/monChoixCata.py
InterfaceQT4/monViewTexte.py [new file with mode: 0644]
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetPlusieursInto.py
InterfaceQT4/politiquesValidation.py
InterfaceQT4/qtCommun.py [deleted file]
UiQT4/desWidgetSimpBase.ui
UiQT4/desWidgetSimpFichier.ui

diff --git a/CarmelCND/acquiertGroupes.py b/CarmelCND/acquiertGroupes.py
new file mode 100644 (file)
index 0000000..0a84105
--- /dev/null
@@ -0,0 +1,125 @@
+#! /usr/bin/env python
+# -*- coding:utf-8 -*-
+# /*  This file is part of MED.
+#  *
+#  *  COPYRIGHT (C) 1999 - 2013  EDF R&D, CEA/DEN
+#  *  MED 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 3 of the License, or
+#  *  (at your option) any later version.
+#  *
+#  *  MED 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 MED.  If not, see <http://www.gnu.org/licenses/>.
+#  */
+
+
+import sys
+sys.path.append('/home/A96028/Salome/V7_main/tools/install/Medfichier-307-hdf51810/lib/python2.7/site-packages')
+
+from med.medfile import *
+from med.medmesh import *
+from med.medfamily import *
+from med.medfilter import *
+
+
+def getGroupes(filename,debug=0) :
+    listeGroupes=[]
+    maa=""
+    
+    dicoNumFam={}
+
+    try :
+        fid = MEDfileOpen(filename,MED_ACC_RDONLY)
+    except :
+        return ("Pb a la lecture du fichier", listeGroupes,maa)
+
+   
+    # /* Lecture des infos concernant le premier maillage */
+    maa, sdim, mdim, type, desc, dtunit, sort, nstep, rep, nomcoo,unicoo = MEDmeshInfo(fid, 1)
+    if debug :
+       print "Maillage de nom : |%s| de dimension : %ld , et de type %s\n"%(maa,mdim,type)
+       print "Maillage de nom : |%s| , de dimension : %ld , et de type %s\n"%(maa,mdim,type)
+       print "\t -Dimension de l'espace : %ld\n"%(sdim)
+       print "\t -Description du maillage : %s\n"%(desc)
+       print "\t -Noms des axes : |%s|\n"%(nomcoo)
+       print "\t -Unités des axes : |%s|\n"%(unicoo)
+       print "\t -Type de repère : %s\n"%(rep)
+       print "\t -Nombre d'étape de calcul : %ld\n"%(nstep)
+       print "\t -Unité des dates : |%s|\n"%(dtunit)
+   
+    # /* Lecture du nombre de familles */
+    nfam = MEDnFamily(fid,maa)
+    if debug :
+       print "Nombre de familles : %d \n"%(nfam)
+   
+    # /* Lecture de chaque famille */
+    for i in xrange(0,nfam):
+   
+        # /* Lecture du nombre de groupe */
+        ngro = MEDnFamilyGroup(fid,maa,i+1)
+        if debug :
+           print "Famille %d a %d groupes \n"%(i+1,ngro)
+   
+        gro  = MEDCHAR(MED_LNAME_SIZE*ngro+1)
+         
+        nomfam,numfam,gro = MEDfamilyInfo(fid,maa,i+1,gro)
+        if debug :
+            print "Famille de nom %s et de numero %d : \n"%(nomfam,numfam)
+            print "Attributs : \n"
+    
+        for j in xrange(0,ngro):
+        # print "gro = %s\n"%(gro[j*MED_LNAME_SIZE:j*MED_LNAME_SIZE+MED_LNAME_SIZE])
+            groupSplit=gro[j*MED_LNAME_SIZE:j*MED_LNAME_SIZE+MED_LNAME_SIZE]
+            groupeName="".join(groupSplit).split("\x00")[0]
+            if groupeName[0:7]=="CENTRE_" : dicoNumFam[groupeName]=numfam
+            if groupeName not in listeGroupes : listeGroupes.append(groupeName) 
+
+
+    # /* Lecture des Numeros de Familles */ 
+    
+    nnoe, chgt, trsf = MEDmeshnEntity(fid,maa,MED_NO_DT,MED_NO_IT, MED_NODE,MED_NONE,MED_COORDINATE,MED_NO_CMODE)
+    nufano = MEDINT(nnoe)
+    MEDmeshEntityFamilyNumberRd(fid,maa, MED_NO_DT, MED_NO_IT, MED_NODE,MED_NONE,nufano)
+    dicoNumNode={}
+    for groupe in dicoNumFam.keys():
+        famille=dicoNumFam[groupe]
+        i=0
+        while i < nufano.size():
+           if nufano[i]==famille :
+              dicoNumNode[groupe]=i
+              break
+           i=i+1
+   
+   
+    print dicoNumNode
+    dicoCoord={}
+#    for groupe in dicoNumNode.keys() :
+#    for groupe in (1,) :
+#        flt=MEDINT(1)
+#        flt[0]=2
+#        print flt
+#        coo1=MEDFLOAT(4)
+#        filter=med_filter()
+#        print "kk"
+#        err=MEDfilterEntityCr( fid, nnoe, 1, sdim, MED_ALL_CONSTITUENT, MED_FULL_INTERLACE, MED_COMPACT_PFLMODE, MED_NO_PROFILE,1 , flt, filter)
+#        print err
+#        print "kk"
+#        MEDmeshNodeCoordinateAdvancedRd(fid, maa, MED_NO_DT, MED_NO_IT, filter, coo1)
+#        print "kk"
+#        MEDfilterClose(filter)
+#        print "kk"
+#        print coo1
+    dicoCoord['CENTRE_saxBas']=(0,0,28.5e-3)
+    dicoCoord['CENTRE_saxHaut']=(0,0,31.5e-3)
+
+    MEDfileClose(fid)
+    return ("",listeGroupes,maa,dicoCoord)
+
+if __name__ == "__main__":
+    filename="/home/A96028/Carmel/Pascale/Domaine_Bidouille.med"
+    print getGroupes(filename)
index 57d842b0de0165b1cb5c3f602cedeb534ff45d6c..9d49531a3dd278e171fcddccab40f890e0f36961 100644 (file)
@@ -99,8 +99,15 @@ class JDCTree( QTreeWidget ):
             pass
 
     def handleDoubleClickedOnItem(self,item,int):
-        item.affichePanneau()
-        self.expandItem(item)
+        print "handleDoubleClickedOnItem on ",item
+        print "handleDoubleClickedOnItem on ",item.fenetre
+        if item.fenetre == None :
+           while not (hasattr (item,'getPanel2')) : item=item.treeParent 
+           item.affichePanneau()
+           self.expandItem(item)
+        else:
+           print item.fenetre
+           item.fenetre.rendVisible()
 
     def choisitPremier(self,name):
         self.editor.layoutJDCCHOIX.removeWidget(self.racine.fenetre)
@@ -127,9 +134,9 @@ class JDCNode(QTreeWidgetItem):
         value = self.appliEficas.trUtf8(  str( item.GetText() ) )
         mesColonnes=QStringList()
         mesColonnes <<  name << value
-        from InterfaceQT4 import compobloc
 
         ajoutAuParentduNoeud=0
+        from InterfaceQT4 import compobloc
         while (isinstance(self.treeParent,compobloc.Node)) :
               self.treeParent=self.treeParent.treeParent
               ajoutAuParentduNoeud=1
@@ -189,6 +196,7 @@ class JDCNode(QTreeWidgetItem):
             parent.removeChild(item)
 
         self.children = []
+        self.childrenComplete = []
         sublist = self.item._GetSubList()
         ind=0
         for item in sublist :
@@ -201,8 +209,7 @@ class JDCNode(QTreeWidgetItem):
         
 
     def affichePanneau(self) :
-        #print "affichePanneau pour" ,self.item.nom
-        self.select()
+        #print "dans affichePanneau"
         if self.item.isactif():
            panel=self.getPanel2()
         else:
@@ -222,7 +229,7 @@ class JDCNode(QTreeWidgetItem):
            self.editor.splitter.setSizes((400,1400,400))
            if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
         self.tree.expandItem(self)
-        #print "fin affichePanneau"
+        self.select()
           
 
     def createPopUpMenu(self):
@@ -291,7 +298,6 @@ class JDCNode(QTreeWidgetItem):
         """        
         for item in self.tree.selectedItems() :
             item.setSelected(0)
-        #print "select -----------> " , self.item.GetLabelText()
         self.setSelected( True )    
         self.setExpanded( True )    
         self.tree.setCurrentItem( self )    
@@ -348,7 +354,7 @@ class JDCNode(QTreeWidgetItem):
         ## PNPNPN : cas de Map nouvelle version 
         #if 1 :
         try :
-          print "1er Try"
+          #print "1er Try"
           old_obj = self.item.object.get_child(name.nom,restreint = 'oui')
           child=old_obj[-1]
           child.affichePanneau() 
@@ -384,10 +390,14 @@ class JDCNode(QTreeWidgetItem):
         self.treeParent.build_children()
         if self.treeParent.childrenComplete : toselect=self.treeParent.childrenComplete[index]
         else: toselect=self.treeParent
-        if recalcule :
-           jdc.recalcule_etat_correlation()
-        toselect.select()
-        #toselect.affichePanneau()
+        if recalcule : jdc.recalcule_etat_correlation()
+        from InterfaceQT4 import compojdc
+        # cas ou on detruit dans l arbre sans affichage
+        if self.treeParent.fenetre== None : return
+        if isinstance(self.treeParent,compojdc.Node) : 
+           toselect.affichePanneau()
+        else :
+           self.treeParent.fenetre.reaffiche(toselect)
 
     def deleteMultiple(self,liste=()):
         """ 
index cabd09cb446c413d1aaa3d61e79297429e7f03b2..e8bb47364bf1c2db60562aec7c36273ad6d54782 100644 (file)
@@ -29,7 +29,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNode):
         return MonMacroPanel(self,parent=self.editor)
 
     def getPanel2(self):
-        print "getPanel2 de compoproc"
+        #print "getPanel2 de compoproc"
         from monWidgetCommande import MonWidgetCommande
         return MonWidgetCommande(self,self.editor,self.item.object)
 
index df4637ae75a9562b5b55d94ea181a478438238fd..1dcfac5af32df132c45ecd389b78c6928a560dc2 100644 (file)
@@ -35,9 +35,9 @@ from Editeur        import session
 from Editeur        import comploader
 from Editeur        import Objecttreeitem
 from desBaseWidget  import Ui_baseWidget
+from monViewTexte   import ViewText 
 import browser
 import readercata
-import qtCommun
 
 DictExtensions= {"MAP" : ".map"}
 
@@ -76,7 +76,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         if self.code in ['MAP','Adao'] : 
            self.widgetTree.close()
            self.widgetTree=None
-           self.appliEficas.resize(1400,self.appliEficas.height())
+           self.appliEficas.resize(1440,self.appliEficas.height())
         else :
            self.appliEficas.resize(2000,self.appliEficas.height())
 
@@ -191,7 +191,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         CONTEXT.unset_current_step()
 
         texte=""
-        #if self.code == "CARMELCND" : texte=self._newJDCCND()
+        if self.code == "CARMELCND" : texte=self._newJDCCND()
         if self.code == "ZCRACKS" : texte=self._newZCRACKS()
         #   texte=self.newTexteCND
        
@@ -325,7 +325,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
     #----------------------------------------------#
     def _viewText(self, txt, caption = "FILE_VIEWER"):
     #----------------------------------------------#
-        w = qtCommun.ViewText( self.QWParent )
+        w = ViewText( self.QWParent )
         w.setWindowTitle( caption )
         w.setText(txt)
         w.show()
@@ -344,7 +344,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
     #----------------------------------------------#
     def _viewTextExecute(self, txt, prefix, suffix):
     #----------------------------------------------#
-        self.w = qtCommun.ViewText( self.QWParent )
+        self.w = ViewText( self.QWParent )
         self.w.setWindowTitle( "execution" )
         self.monExe=QProcess(self.w)
         pid=self.monExe.pid()
index 2222e1c562985eda4da5df6e2d2329a63fb34e27..2e6baa986da67490f39a22f82cfd0d9dcf0192b1 100644 (file)
@@ -170,9 +170,6 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
       if self.max!=1 : commentaire+="s" 
       return commentaire
 
-      
-
-
    def setZoneInfo(self):
       # info=str(self.nom)+'  '
       # if self.monSimpDef.get_fr() != None and self.monSimpDef.get_fr() != "": info+=self.monSimpDef.get_sug() +" "
index 5667d4775f102f9dc92f2c0988b504bebcde6bf9..98e5d5196c0d30548df996fa4a28d6900d5b2779 100644 (file)
@@ -56,9 +56,6 @@ class FacultatifOuOptionnel:
 
   def aDetruire(self):
       self.node.delete()
-      # Cas du mono-commande
-      if self.parentQt == None : self.afficheCatalogue()
-      else : self.parentQt.reaffiche()
 
   def setValide(self):
       if not(hasattr (self,'RBValide')) : return
@@ -69,6 +66,9 @@ class FacultatifOuOptionnel:
          icon=QIcon(self.repIcon+"/ast-red-ball.png")
       self.RBValide.setIcon(icon)
 
+  def rendVisible(self):
+      self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self)
+      self.setFocus()
 
 
 class ContientIcones:
index b3d8438e54e1f40361d93e3802e3acb173055504..21f50036c2a94073407f0117a8bd2762429ac580 100644 (file)
@@ -25,6 +25,25 @@ from PyQt4 import *
 from PyQt4.QtGui import *
 from PyQt4.QtCore import *
 from Extensions.i18n import tr
+from monViewTexte   import ViewText
+
+# ---------------------- #
+class LECustom(QLineEdit):
+# ---------------------- #
+ def __init__(self,parent,parentQt,i):
+        """
+        Constructor
+        """
+        QMainWindow.__init__(self,parent)
+        self.parentQt=parentQt
+        self.num=i
+
+ def focusInEvent(self,event):
+     self.parentQt.LineEditEnCours=self
+     self.parentQt.NumLineEditEnCours=self.num
+
+
+
 
 # ------------- #
 class GereListe:
@@ -35,15 +54,90 @@ class GereListe:
        self.connecterSignaux()
 
    def connecterSignaux(self):
-       self.connect(self.RBUp,SIGNAL("clicked()"),self.upPushed)
-       self.connect(self.RBDown,SIGNAL("clicked()"),self.downPushed)
-       self.connect(self.RBPoubelleVal,SIGNAL("clicked()"),self.poubPushed)
+       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)
+       self.connect(self.RBSalome,SIGNAL("clicked()"),self.salomePushed)
+       self.connect(self.RBSalomeVue,SIGNAL("clicked()"),self.salomeVuePushed)
+
+   def hautPushed(self):
+       if self.NumLineEditEnCours == 1 : return
+       else : numEchange=self.NumLineEditEnCours-1
+       self.echange(self.NumLineEditEnCours,numEchange)
+       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
+
+
+   def basPushed(self):
+       if self.NumLineEditEnCours == self.indexDernierLabel : return
+       else : numEchange=self.NumLineEditEnCours+1
+       self.echange(self.NumLineEditEnCours,numEchange)
+       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
+
+   def echange(self,num1,num2):
+       # on donne le focus au a celui ou on a bouge
+       # par convention le 2
+       nomLineEdit="labelVal"+str(num1)
+       print nomLineEdit
+       courant=getattr(self,nomLineEdit)
+       valeurAGarder=courant.text()
+       nomLineEdit2="labelVal"+str(num2)
+       print nomLineEdit2
+       courant2=getattr(self,nomLineEdit2)
+       courant.setText(courant2.text())
+       courant2.setText(valeurAGarder)
+       self.changeValeur(changeDePlace=False)
+       self.NumLineEditEnCours=num2
+       self.LineEditEnCours=courant2
+
+   def moinsPushed(self):
+       # on supprime le dernier
+       if self.NumLineEditEnCours==self.indexDernierLabel : 
+          self.setText("")
+       else :
+         for i in range (self.NumLineEditEnCours, self.indexDernierLabel):
+             aRemonter=i+1
+             nomLineEdit="labelVal"+str(aRemonter)
+             courant=getattr(self,nomLineEdit)
+             valeurARemonter=courant.text()
+             nomLineEdit="labelVal"+str(i)
+             courant=getattr(self,nomLineEdit)
+             courant.setText(valeurARemonter)
+         nomLineEdit="labelVal"+str(self.indexDernierLabel)
+         courant=getattr(self,nomLineEdit)
+         courant.setText("")
+       self.changeValeur(changeDePlace=False)
+
+   def plusPushed(self):
+       self.ajoutLineEdit()
+       if self.NumLineEditEnCours==self.indexDernierLabel : return
+       nomLineEdit="labelVal"+str(self.NumLineEditEnCours+1)
+       courant=getattr(self,nomLineEdit)
+       valeurADescendre=courant.text()
+       courant.setText("")
+       for i in range (self.NumLineEditEnCours+1, self.indexDernierLabel):
+             aDescendre=i+1
+             nomLineEdit="labelVal"+str(aDescendre)
+             courant=getattr(self,nomLineEdit)
+             valeurAGarder=courant.text()
+             courant.setText(valeurADescendre)
+             valeurADescendre=valeurAGarder
+       self.changeValeur(changeDePlace=False)
+       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
+
+   def voisListePushed(self):
+       print "voisListePushed"
+       texteValeurs=""
+       for v in self.node.item.GetListeValeurs():
+          texteValeurs+=str(v)+", "
+       entete="Valeurs pour "+self.nom
+       f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
+       f.show()
 
-   def upPushed(self):
-       print "upPushed"
+   def salomePushed(self):
+       print "salomePushed"
 
-   def downPushed(self):
-       print "downPushed"
+   def salomeVuePushed(self):
+       print "salomeVuePushed"
 
-   def poubPushed(self):
-       print "poubPushed"
index ee9c95f14c139b67129b05521f76d6c73fee8d8b..6d17fae41fe70b36031b2e238504b64f07aa416e 100644 (file)
@@ -177,4 +177,3 @@ class Groupe(QtGui.QWidget,FacultatifOuOptionnel):
       self.node.setDeplie()
       self.reaffiche() 
 
-
index 442d01d1dd5eb55a18b07c82371e6995881e85af..1a4199a28c38bb9176047680a82ee41f925848bc 100644 (file)
@@ -24,7 +24,6 @@ from desChoixCata import Ui_DChoixCata
 from PyQt4  import *
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
-from PyQt4.QtCore import *
 
 from Extensions.i18n import tr
 # Import des panels
diff --git a/InterfaceQT4/monViewTexte.py b/InterfaceQT4/monViewTexte.py
new file mode 100644 (file)
index 0000000..564a966
--- /dev/null
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   EDF R&D
+#
+# 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.
+#
+# 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
+import traceback
+
+from Extensions.i18n import tr
+from PyQt4.QtGui import *
+from PyQt4.QtCore import *
+from desViewTexte import Ui_dView
+
+# ------------------------------- #
+class ViewText(Ui_dView,QDialog):
+# ------------------------------- #
+    """
+    Classe permettant la visualisation de texte
+    """
+    def __init__(self,parent,editor=None,entete=None,texte=None):
+        QDialog.__init__(self,parent)
+        self.editor=editor
+        self.setupUi(self)
+
+        self.resize( QSize(600,600).expandedTo(self.minimumSizeHint()) )
+        self.connect( self.bclose,SIGNAL("clicked()"), self, SLOT("close()") )
+        self.connect( self.bsave,SIGNAL("clicked()"), self.saveFile )
+        if entete != None : self.setWindowTitle (entete)
+        if entete != None : self.setText (texte)
+
+        
+    def setText(self, txt ):    
+        self.view.setText(txt)
+        
+    def saveFile(self):
+        #recuperation du nom du fichier
+        if self.editor != None :
+           dir=self.editor.appliEficas.CONFIGURATION.savedir
+        else:
+           dir='/tmp'
+        fn = QFileDialog.getSaveFileName(None,
+                tr("Sauvegarder le fichier"),
+                dir)
+        if fn.isNull() : return
+        ulfile = os.path.abspath(unicode(fn))
+        if self.editor != None :
+           self.editor.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
+        try:
+           f = open(fn, 'wb')
+           f.write(str(self.view.toPlainText()))
+           f.close()
+           return 1
+        except IOError, why:
+           QMessageBox.critical(self, tr("Sauvegarder le fichier"),
+                tr("Le fichier <b>%(v_1)s</b> n'a pu etre sauvegarde. <br>Raison : %(v_2)s", {'v_1': unicode(fn), 'v_2': unicode(why)}))
+           return
+
index f4dc44c58c35237eed15c9f37163037eb0539b10..af62d6b9dc57411a0be24da9a05cd76d1740bb58 100644 (file)
@@ -36,7 +36,7 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
   """
   """
   def __init__(self,node,editor,etape):
-      print "MonWidgetCommande ", self
+      #print "MonWidgetCommande ", self
       Groupe.__init__(self,node,editor,None,etape.definition,etape,1)
       if (etape.get_type_produit()==None): self.LENom.close()
       elif (hasattr (etape, 'sdnom')) and etape.sdnom != "sansnom" : self.LENom.setText(etape.sdnom) 
@@ -105,7 +105,6 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
   def setValide(self):
       if not(hasattr (self,'RBValide')) : return
       icon = QIcon()
-      print self.repIcon
       if self.node.item.object.isvalid() :
          icon=QIcon(self.repIcon+"/ast-green-ball.png")
       else :
index 95fa29a3b43cad8f37695ff9c0901ba7e55fa0da..05d653e132a98bd1bc5ae4a9ddd1bb1713541919 100644 (file)
@@ -30,14 +30,16 @@ from desWidgetPlusieursBase import Ui_WidgetPlusieursBase
 from politiquesValidation   import PolitiquePlusieurs
 from qtSaisie               import SaisieValeur
 from gereListe              import GereListe
+from gereListe              import LECustom
 
-class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille):
+class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt):
-        print "MonWidgetPlusieursBase", nom
+        #print "MonWidgetPlusieursBase", nom
         self.index=1
         self.indexDernierLabel=0
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt)
+        GereListe.__init__(self)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
         self.parentQt.commandesLayout.insertWidget(1,self)
 
@@ -76,7 +78,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille):
       if hasattr(self,nomLineEdit) : 
          self.indexDernierLabel=self.indexDernierLabel-1
          return
-      nouveauLE = QLineEdit(self.scrollArea)
+      nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel)
       self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
       nouveauLE.setText("")
       if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
@@ -138,7 +140,8 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille):
         
 
 
-  def changeValeur(self):
+  def changeValeur(self,changeDePlace=True):
+      print 'ds chge valeur'
       donneFocus=None
       derniereValeur=None
       self.listeValeursCourantes = []
@@ -156,13 +159,13 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille):
       nomDernierLineEdit="labelVal"+str(self.indexDernierLabel)
       dernier=getattr(self,nomDernierLineEdit)
       derniereValeur=dernier.text()
-      print 'ds chge valeur'
-      if donneFocus != None : 
-         donneFocus.setFocus()
-         self.scrollArea.ensureWidgetVisible(donneFocus)
-      elif self.indexDernierLabel < self.monSimpDef.max  : 
+      if changeDePlace:
+         if donneFocus != None : 
+           donneFocus.setFocus()
+           self.scrollArea.ensureWidgetVisible(donneFocus)
+         elif self.indexDernierLabel < self.monSimpDef.max  : 
            self.ajoutLineEdit()
-      else : 
+      if  self.indexDernierLabel == self.monSimpDef.max  :
         self.scrollArea.setToolTip('nb max de valeurs atteint')
         self.editor.affiche_infos('nb max de valeurs atteint')
       if self.listeValeursCourantes == [] : return
index 9a4d1aa0c7a959b3b990446f9992dee017a71082..0afd3bc5e61a0c25a5d98caf03ba8cbb97a0c4e8 100644 (file)
@@ -34,7 +34,7 @@ from gereListe              import GereListe
 class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt):
-        print "MonWidgetPlusieursInto", nom
+        #print "MonWidgetPlusieursInto", nom
         self.index=1
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
index 84c2c0530d9846739664d6a70d64f079df114b4e..bf65f728dc0a30f666a5a5aa9206f65aa0109064 100644 (file)
@@ -165,11 +165,11 @@ class PolitiquePlusieurs(Validation):
   classe servant pour les entrees ne demandant qu un mot clef
   """
   def __init__(self,node,parent) :
-         print "ds PolitiquePlusieurs"
+         #print "ds PolitiquePlusieurs"
          self.node=node
          self.parent=parent
-         print self.node
-         print self.parent
+         #print self.node
+         #print self.parent
 
 
   def AjoutValeurs(self,listevaleur,index,listecourante):
diff --git a/InterfaceQT4/qtCommun.py b/InterfaceQT4/qtCommun.py
deleted file mode 100644 (file)
index 70e23e0..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# 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.
-#
-# 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
-import traceback
-
-from PyQt4 import *
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
-from Extensions.i18n import tr
-
-# Import des panels
-
-# ---------- #
-class QTPanel:
-# ---------- #
-  """
-  Classe contenant les methodes Qt communes a tous les panneaux droits
-  Tous les panneaux Mon...Panel heritent de cette classe
-  Gere plus precisement :
-     - l affichage de la doc
-     - le bouton Suppression (BSupPressed)
-     - la mutualisation de l affichage des regles
-  """
-  def __init__(self,node, parent = None):
-        self.editor    = parent
-        self.node      = node
-        if hasattr(self,'TWChoix'):
-           self.connect(self.TWChoix, SIGNAL("currentChanged(QWidget *)"), self.GestionBALpha)
-
-  def keyReleaseEvent(self,event):
-        if event.matches(QKeySequence.Copy): self.editor.appliEficas.editCopy() 
-        if event.matches(QKeySequence.Cut): self.editor.appliEficas.editCut() 
-        if event.matches(QKeySequence.Paste): self.editor.appliEficas.editPaste() 
-
-
-  def GestionBALpha(self,fenetre):
-        if self.TWChoix.currentIndex()!=0:
-           if hasattr(self,'BAlpha'): #pour include materiau
-              self.BAlpha.hide()
-        else :
-           if hasattr(self,'BAlpha'): 
-              self.BAlpha.setVisible(True)
-              self.BuildLBMCPermis()
-
-  def BOkPressed(self):
-    if hasattr(self, "Commande") and self.TWChoix.currentWidget() is self.Commande:
-      self.DefCmd()
-    elif hasattr(self, "Concept") and self.TWChoix.currentWidget() is self.Concept:
-      self.LENomConceptReturnPressed()
-    elif hasattr(self, "MotClef") and self.TWChoix.currentWidget() is self.MotClef:
-      if self.LBMCPermis.currentItem() == None : return
-      self.DefMC(self.LBMCPermis.currentItem())
-    elif hasattr(self, "Formule") and self.TWChoix.currentWidget() is self.Formule:
-      self.BOkPressedFormule()
-    elif hasattr(self, "Valeur_Parametre") and self.TWChoix.currentWidget() is self.Valeur_Parametre:
-      self.BOkParamPressed()
-    elif hasattr(self, "maPageOk") and self.TWChoix.currentWidget() is self.maPageOk:
-      self.BOkIncPressed()
-    else:
-      raise Exception("Unknown selected tab %s" % self.TWChoix.tabText(self.TWChoix.currentIndex()))
-
-  def BParametresPressed(self):
-        liste=self.node.item.get_liste_param_possible()
-        from monListeParamPanel import MonListeParamPanel
-        MonListeParamPanel(liste=liste,parent=self).show()
-       
-  def AppelleBuildLBRegles(self):
-        listeRegles     = self.node.item.get_regles()
-        listeNomsEtapes = self.node.item.get_mc_presents()
-        self.BuildLBRegles(listeRegles,listeNomsEtapes)
-
-
-  def BuildLBRegles(self,listeRegles,listeNomsEtapes):
-        self.LBRegles.clear()
-        if len(listeRegles) > 0:
-           for regle in listeRegles :
-              texteRegle=regle.gettext()
-              texteMauvais,test = regle.verif(listeNomsEtapes)
-              for ligne in texteRegle.split("\n") :
-                 if ligne == "" :
-                    self.LBRegles.addItem(ligne)
-                    continue
-                 if ligne[0]=="\t" :
-                    ligne="     "+ligne[1:]
-                 if test :
-                    self.LBRegles.addItem(ligne)
-                 else :
-                    
-                    monItem=QListWidgetItem(ligne)
-                    monItem.setForeground(Qt.red)
-                    self.LBRegles.addItem(monItem)
-
-
-# ----------------------- #
-class QTPanelTBW1(QTPanel):
-# ----------------------- #
-  """
-  Classe contenant les methodes necessaires a l onglet "Ajouter Mot-Clef"  
-  herite de QTPanel  # Attention n appelle pas le __init__
-  Gere plus precisement :
-  """
-  def __init__(self,node, parent = None):
-        self.editor    = parent
-        self.node      = node
-        if not(hasattr(self.node,'alpha')): self.node.alpha  = 0
-        self.BuildLBMCPermis()
-        self.AppelleBuildLBRegles()
-        if hasattr(self,'BAlpha'):
-           self.connect(self.BAlpha,SIGNAL("clicked()"),self.BAlphaPressed)
-
-  def BAlphaPressed (self):
-        if self.node.alpha == 0 :
-           self.node.alpha=1
-           self.BAlpha.setText(tr("Tri Cata"))
-        else :
-           self.node.alpha=0
-           self.BAlpha.setText(tr("Tri Alpha"))
-        self.BuildLBMCPermis()
-
-           
-  def BuildLBMCPermis(self):
-        self.LBMCPermis.clear()
-        QObject.connect(self.LBMCPermis,SIGNAL("itemDoubleClicked(QListWidgetItem*)"),self.DefMC)
-        jdc = self.node.item.get_jdc()
-        genea =self.node.item.get_genealogie()
-        liste_mc=self.node.item.get_liste_mc_ordonnee(genea,jdc.cata_ordonne_dico)
-        if ((len(liste_mc) < 10) and (hasattr(self,'BAlpha'))):
-           self.BAlpha.hide()
-        if self.node.alpha == 1 : liste_mc.sort()
-        for aMc in liste_mc: self.LBMCPermis.addItem( aMc)
-        if len(liste_mc) !=0: self.LBMCPermis.setCurrentItem(self.LBMCPermis.item(0))
-
-
-  def DefMC(self,item):
-        """ On ajoute un mot-cle à  la commande : subnode """
-        name=str(item.text())
-        self.editor.init_modif()
-        self.node.append_child(name)
-
-# ---------------------------- #
-class QTPanelTBW2(QTPanel):
-# ---------------------------- #
-  """
-  Classe contenant les methodes necessaires a l onglet "Nouvelle Commande"  
-  herite de QTPanel  # Attention n appelle pas le __init__
-  Gere plus precisement :
-  """
-
-  def __init__(self,node, parent = None, racine = 0):
-        self.editor    = parent
-        self.node      = node
-        self.BuildLBNouvCommande()
-        self.LEFiltre.setFocus()
-        self.NbRecherches = 0
-        if racine == 1 :
-           self.AppelleBuildLBRegles()
-           self.LEFiltre.setFocus()
-        else :
-           self.connect(self.TWChoix, SIGNAL("currentChanged(QWidget *)"), self.handleCurrentChanged)
-            
-
-
-  def handleCurrentChanged(self):
-        try :
-          label=self.TWChoix.tabText(self.TWChoix.currentIndex())
-          if label==tr("Nouvelle Commande"):
-            self.LEFiltre.setFocus()
-          if label==tr("Nommer Concept"):
-           self.LENomConcept.setFocus()
-          if label==tr("Definition Formule"):
-           self.LENomFormule.setFocus()
-          if label==tr("Valeur Parametre"):
-           self.lineEditNom.setFocus()
-          if label==tr("Fichier Include"):
-           self.LENomFichier.setFocus()
-          if label==tr("Ajouter Mot-Clef"):
-           self.LBMCPermis.setCurrentItem(self.LBMCPermis.item(0))
-        except :
-          pass
-
-      
-  def BuildLBNouvCommande(self):
-        self.LBNouvCommande.clear()
-
-        jdc=self.node.item.object.get_jdc_root()
-
-        listeGroupes,dictGroupes=jdc.get_groups()
-        if "CACHE" in dictGroupes.keys():
-           aExclure=dictGroupes["CACHE"]
-        else:
-           aExclure=()
-        if ((self.editor.mode_nouv_commande == "alpha") and (hasattr(self,'RBalpha'))):
-           self.RBalpha.setChecked(True)
-           self.RBGroupe.setChecked(False)
-           listeCmd = jdc.get_liste_cmd()
-           for aCmd in listeCmd:
-              if aCmd not in aExclure :
-                 self.LBNouvCommande.addItem( aCmd )
-        elif self.editor.mode_nouv_commande== "groupe" :
-           self.RBGroupe.setChecked(True)
-           self.RBalpha.setChecked(False)
-
-           listeGroupes,dictGroupes=jdc.get_groups()
-           for grp in listeGroupes:
-              if grp == "CACHE":continue
-              listeCmd=dictGroupes[grp]
-              texte="GROUPE : "+grp
-              self.LBNouvCommande.addItem( texte )
-              self.LBNouvCommande.addItem( " " )
-              for aCmd in listeCmd:
-                if aCmd not in aExclure :
-                 self.LBNouvCommande.addItem( aCmd)
-              self.LBNouvCommande.addItem( " " )
-        elif self.editor.mode_nouv_commande== "initial" :
-           listeCmd =  self.editor.Commandes_Ordre_Catalogue
-           listeCmd2=jdc.get_liste_cmd()
-           if len(listeCmd) != len(listeCmd2):
-               listeCmd        = listeCmd2
-           for aCmd in listeCmd:
-              if aCmd not in aExclure :
-                 self.LBNouvCommande.addItem( aCmd )
-        #QObject.connect( self.LBNouvCommande, SIGNAL("itemClicked(QListWidgetItem*)"),self.DefCmd )
-        QObject.connect( self.LBNouvCommande, SIGNAL("itemDoubleClicked(QListWidgetItem*)"),self.DefCmd )
-
-  def BuildLBNouvCommandChanged(self) :
-        if self.RBalpha.isChecked():
-           self.editor.mode_nouv_commande="alpha"
-        else :
-           self.editor.mode_nouv_commande="groupe"
-        self.BuildLBNouvCommande()
-        self.LEFiltre.setFocus()
-
-  def DefCmd(self):
-        if self.LBNouvCommande.currentItem()== 0 : return
-        if self.LBNouvCommande.currentItem()== None : return
-        name=str(self.LBNouvCommande.currentItem().text())
-        if name==QString(" "):
-          return
-        if name.find("GROUPE :")==0 :
-          return
-        self.editor.init_modif()
-        new_node = self.node.append_brother(name,'after')
-
-
-  def LEFiltreTextChanged(self):
-        self.NbRecherches = 0
-        try :
-           MonItem=self.LBNouvCommande.findItems(self.LEFiltre.text().toUpper(),Qt.MatchContains)[0]
-          self.LBNouvCommande.setCurrentItem(MonItem)
-        except :
-           pass
-
-  def LEfiltreReturnPressed(self):
-        self.DefCmd()
-
-  def BNextPressed(self):
-        self.NbRecherches = self.NbRecherches + 1
-        monItem = None
-        try :
-            MonItem=self.LBNouvCommande.findItems(self.LEFiltre.text().toUpper(),Qt.MatchContains)[self.NbRecherches]
-        except :
-            try : # ce try sert si la liste est vide
-               MonItem=self.LBNouvCommande.findItems(self.LEFiltre.text().toUpper(),Qt.MatchContains)[0]
-               self.NbRecherches = 0
-            except :
-               return
-       self.LBNouvCommande.setCurrentItem(MonItem)
-
-  def LBNouvCommandeClicked(self):
-        name=str(self.LBNouvCommande.currentText())
-
-
-# ---------------------------- #
-class QTPanelTBW3(QTPanel):
-# ---------------------------- #
-
-  """
-  Classe contenant les methodes necessaires a l onglet "Nommer Concept"  
-  si non reentrant
-  herite de QTPanel                   # Attention n appelle pas le __init__
-  Gere plus precisement :
-  """
-
-  def __init__(self,node, parent = None):
-        self.editor    = parent
-        self.node      = node
-        type_sd = self.node.item.get_type_sd_prod()
-        nomConcept = self.node.item.GetText()
-        self.typeConcept.setText(type_sd)
-        self.LENomConcept.setText("")
-        self.LENomConcept.setText(nomConcept)
-        self.LENomConcept.setFocus()
-        if self.node.item.is_reentrant():
-           self.makeConceptPage_reentrant()
-        else :
-           self.listBoxASSD.close()
-
-  def makeConceptPage_reentrant(self):
-        self.bOk.close()
-        self.LENomConcept.close()
-        self.Label2.close()
-        self.Label3.close()
-        self.typeConcept.close()
-        self.LENomConcept.close()
-        self.Label1.setText(tr("<font size=\"+1\"><p align=\"center\">Structures de donnees a enrichir\n"
-" par l\'operateur courant :</p></font>"))
-        listeNomsSD = self.node.item.get_noms_sd_oper_reentrant()
-        for aSD in listeNomsSD:
-            self.listBoxASSD.addItem( aSD)
-        QObject.connect(self.listBoxASSD, SIGNAL("itemDoubleClicked(QListWidgetItem*)" ), self.ClicASSD )
-
-        
-  def ClicASSD(self):
-        if self.listBoxASSD.currentItem()== None : return
-        val=self.listBoxASSD.currentItem().text()
-        nom=str(val)
-        nom = string.strip(nom)
-        test,mess = self.node.item.nomme_sd(nom)
-        if (test== 0):
-           self.editor.affiche_infos(mess,Qt.red)
-
-  def LENomConceptReturnPressed(self):
-        """
-        Nomme le concept SD retourne par l'etape
-        """
-        nom = str(self.LENomConcept.text())
-        nom = string.strip(nom)
-        if nom == '' : return                  # si pas de nom, on ressort sans rien faire
-        self.editor.init_modif()
-        test,mess = self.node.item.nomme_sd(nom)
-        #Notation scientifique
-        from politiquesValidation import Validation
-        validation=Validation(self.node,self.editor)
-        validation.AjoutDsDictReelEtape()
-        self.editor.affiche_infos(mess)
-
-# ------------------------------- #
-from desViewTexte import Ui_dView
-class ViewText(Ui_dView,QDialog):
-# ------------------------------- #
-    """
-    Classe permettant la visualisation de texte
-    """
-    def __init__(self,parent,editor=None,entete=None):
-        QDialog.__init__(self,parent)
-        self.editor=editor
-        self.setupUi(self)
-
-        self.resize( QSize(600,600).expandedTo(self.minimumSizeHint()) )
-        self.connect( self.bclose,SIGNAL("clicked()"), self, SLOT("close()") )
-        self.connect( self.bsave,SIGNAL("clicked()"), self.saveFile )
-        if entete != None : self.setWindowTitle (entete)
-
-        
-    def setText(self, txt ):    
-        self.view.setText(txt)
-        
-    def saveFile(self):
-        #recuperation du nom du fichier
-        if self.editor != None :
-           dir=self.editor.appliEficas.CONFIGURATION.savedir
-        else:
-           dir='/tmp'
-        fn = QFileDialog.getSaveFileName(None,
-                tr("Sauvegarder le fichier"),
-                dir)
-        if fn.isNull() : return
-        ulfile = os.path.abspath(unicode(fn))
-        if self.editor != None :
-           self.editor.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
-        try:
-           f = open(fn, 'wb')
-           f.write(str(self.view.toPlainText()))
-           f.close()
-           return 1
-        except IOError, why:
-           QMessageBox.critical(self, tr("Sauvegarder le fichier"),
-                tr("Le fichier <b>%(v_1)s</b> n'a pu etre sauvegarde. <br>Raison : %(v_2)s", {'v_1': unicode(fn), 'v_2': unicode(why)}))
-           return
-
index fec25bb3dcdef28165665ea9441ebd16928df3b6..dd667fe49f783bbce8b41548789c8e9f4f8e5a40 100644 (file)
    <property name="spacing">
     <number>0</number>
    </property>
-   <property name="margin">
+   <property name="leftMargin">
     <number>0</number>
    </property>
+   <property name="topMargin">
+    <number>2</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>2</number>
+   </property>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <property name="spacing">
index 91720e190e14f5e10321d11d32657060d440e9de..ca35fbbc117ecbec8989c6bc0fb50f9cf988d31b 100644 (file)
    <property name="spacing">
     <number>0</number>
    </property>
-   <property name="margin">
+   <property name="leftMargin">
     <number>0</number>
    </property>
+   <property name="topMargin">
+    <number>2</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>2</number>
+   </property>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <property name="spacing">