]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
double clic et saisie ds les listes pliees
authorpascale.noyret <pascale.noyret@edf.fr>
Fri, 24 Mar 2017 13:23:58 +0000 (14:23 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Fri, 24 Mar 2017 13:23:58 +0000 (14:23 +0100)
InterfaceQT4/browser.py
InterfaceQT4/compofact.py
InterfaceQT4/configuration.py
InterfaceQT4/editor.py
InterfaceQT4/feuille.py
InterfaceQT4/monChoixCommande.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetPlusieursPlie.py
InterfaceQT4/qtSaisie.py

index b149fb8c644562c6085fe60187e780948c791102..35d45b08b2fdb8b9c6920dbc01c8d8a65324a230 100644 (file)
@@ -659,8 +659,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
     def update_node_label(self):
         """ Met a jour le label du noeud """
+        pass
         #print "NODE update_node_label", self.item.GetLabelText()
-        labeltext,fonte,couleur = self.item.GetLabelText()
+        #labeltext,fonte,couleur = self.item.GetLabelText()
         # PNPN a reflechir
         #self.setText(0, labeltext)        
     
index 1a367f60d6b99ef7675af23bbfcdfca96a92cf9a..6dfe35844516a31fb987e32350473784c104e8ff 100644 (file)
@@ -67,6 +67,7 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
         - la couleur du texte
       """
       # None --> fonte et couleur par defaut
+      if not(hasattr(self.object,'getlabeltext')): return self.object.nom,None,None
       return self.object.getlabeltext(),None,None
 
   def isvalid(self):
index 9c6da0dfad4cfa53e71c669f6be9035326a140b5..85e9dd56d1f8291c76a4439e83d284cf84b6f2a6 100644 (file)
@@ -107,6 +107,8 @@ class CONFIG_BASE(object):
       self.suiteTelemac=False
       self.nombreDeBoutonParLigne=0
       self.translatorFichier=None
+      self.dicoImages= {}
+      self.simpleClic= False
 
  
   #--------------------------------------
index 3cd03245982e62576a4a09f4cbf6642f89b847dc..ede146cbf47496b2663c6a89c790728fa0661dc8 100755 (executable)
@@ -106,6 +106,8 @@ class JDCEditor(Ui_baseWidget,QWidget):
         self.closeArbre=self.appliEficas.CONFIGURATION.closeArbre
         self.affiche=self.appliEficas.CONFIGURATION.affiche
         self.nombreDeBoutonParLigne = self.appliEficas.CONFIGURATION.nombreDeBoutonParLigne
+        self.dicoImages = self.appliEficas.CONFIGURATION.dicoImages
+        self.simpleClic = self.appliEficas.CONFIGURATION.simpleClic
         #self.taille = self.appliEficas.taille
 
         #if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
@@ -508,11 +510,11 @@ class JDCEditor(Ui_baseWidget,QWidget):
 
     def readFromStdErr(self):
         a=self.monExe.readAllStandardError()
-        self.w.view.append(str(a.data(),len(a)))
+        self.w.view.append(str(a.data()))
 
-    def readFromStdErr(self) :
+    def readFromStdOut(self) :
         a=self.monExe.readAllStandardOutput()
-        self.w.view.append(str(a.data(),len(a)))
+        self.w.view.append(str(a.data()))
 
     def readFromStdErrQT4(self):
         a=self.monExe.readAllStandardError()
index 33f160e257e740ad968b08a5011195937fd2d5df..2994815793dbdf05db1e865264c2929b0dfea095 100644 (file)
@@ -133,7 +133,7 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
            if mc.min == mc.max:
                commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])+'\n'
            else :
-               commentaire=tr("Entrez entre ")+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
+               commentaire=tr("Entrez entre ")+"\n"+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
         aideval=self.node.item.aide()
         commentaire=commentaire +  tr(aideval)
         self.monCommentaireLabel.setText(str(commentaire))
@@ -151,8 +151,10 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
       self.aide=c
       if self.objSimp.get_fr() != None and self.objSimp.get_fr() != "":
           c2 = '<html><head/><body><p>'+c+self.objSimp.get_fr().decode('latin-1','replace')+"</p></body></html>"
+          #c2 = '<html><head/><body><p>'+c+self.objSimp.get_fr()+"</p></body></html>"
           self.label.setToolTip(c2)
           self.aide=self.objSimp.get_fr().decode('latin-1','ignore')+" "+c
+          #self.aide=self.objSimp.get_fr()+" "+c
       else :
          c+=self.finCommentaire()
          if c != "" and c != None :
index ce11c7d57526a66de699e172ba6472557668a122..09a0913f955481628f6db3efeffd633e39e308ef 100644 (file)
@@ -194,8 +194,9 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget):
            self.dicoCmd[tr(cmd)]=cmd
            rbcmd=(QRadioButton(tr(cmd)))
            self.buttonGroup.addButton(rbcmd)
-           rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
            self.commandesLayout.addWidget(rbcmd)
+           if self.editor.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+           else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
            self.buttonGroup.buttonClicked.connect(self.rbClique) 
       elif  self.affiche_groupe==1 :
          listeGroupes,dictGroupes=self.jdc.get_groups()
@@ -217,7 +218,8 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget):
               rbcmd=(QRadioButton(tr(cmd)))
               self.buttonGroup.addButton(rbcmd)
               self.commandesLayout.addWidget(rbcmd)
-              rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+              if self.editor.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+              else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
               self.buttonGroup.buttonClicked.connect(self.rbClique) 
            label2=QLabel(self)
            label2.setText(" ")
@@ -236,7 +238,8 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget):
            rbcmd=(QRadioButton(tr(cmd)))
            self.buttonGroup.addButton(rbcmd)
            self.commandesLayout.addWidget(rbcmd)
-           rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+           if self.editor.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+           else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
            self.buttonGroup.buttonClicked.connect(self.rbClique) 
 
      
@@ -272,16 +275,18 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget):
            rbcmd=QPushButton(tr(cmd))
            rbcmd.setGeometry(QRect(40, 20, 211, 71))
            rbcmd.setMaximumSize(QSize(250, 81))
-           rbcmd.setStyleSheet("background-color : rgb(168, 227, 142);\n"
+           rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
 "/*border-style : outset;*/\n"
 "border-radius : 20px;\n"
 "border-width : 30 px;\n"
 "border-color : beige;\n"
-"text-align : left")
-           icon = QIcon()
-           icon.addPixmap(QPixmap("../monCode/images/essaiAster.png"), QIcon.Normal, QIcon.Off)
-           rbcmd.setIcon(icon)
-           rbcmd.setIconSize(QSize(48, 48))
+"text-align : center")
+           if cmd in self.editor.dicoImages :
+              fichier=self.editor.dicoImages[cmd]
+              icon = QIcon()
+              icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+              rbcmd.setIcon(icon)
+              rbcmd.setIconSize(QSize(48, 48))
 
            self.buttonGroup.addButton(rbcmd)
            self.maGrilleBouton.addWidget(rbcmd,ligne,col)
@@ -295,7 +300,6 @@ class MonChoixCommande(Ui_ChoixCommandes,QWidget):
       self.insereNoeudApresClick(None)
 
   def rbClique(self,id):
-      #print ('ds rbClique')
       self.name=self.dicoCmd[str(id.text())]
       definitionEtape=getattr(self.jdc.cata[0],self.name)
       commentaire=getattr(definitionEtape,self.jdc.lang)
index fe2ab640b83484bec34f1b1c9abe60cf6165d52d..d66aa6dcad6308b9f1900b065819338ddde92ba1 100644 (file)
@@ -43,7 +43,7 @@ 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,GerePlie):
@@ -75,14 +75,16 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
           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)
-        else :
-           self.resize(self.width(),hauteurMax)
-           self.setMinimumHeight(hauteurMax)
+        #if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7: 
+        #   hauteur=dicoLongueur[self.monSimpDef.max]
+        #   hauteur=dicoLongueur[2]
+        #   print ('hauteur', hauteur)
+        #   self.resize(self.width(),hauteur)
+        #   self.setMinimumHeight(hauteur)
+        #   if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
+        #else :
+        #   self.resize(self.width(),hauteurMax)
+        #   self.setMinimumHeight(hauteurMax)
         self.finCommentaireListe()
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
@@ -94,10 +96,10 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
        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
-       #for i in range(1,aConstruire):
-       for i in range(1,7):
+       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()
        QApplication.processEvents()
        self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
@@ -116,6 +118,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
        # 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)
        
 
index bb5b066fd5a4587319f174f5a9fc38c1854fa98d..7da3e7acd65bde54dd68cd70338da5b9659ba2e0 100644 (file)
@@ -23,27 +23,41 @@ try :
    from builtins import str
 except : pass
 
-import types,os,sys
+import types,os,sys,re
 
 from PyQt5.QtWidgets  import   QFrame
 from PyQt5.QtCore import QTimer, QSize, Qt
-from PyQt5.QtGui  import QIcon
+from PyQt5.QtGui  import QIcon, QBrush, QColor
 
 from Extensions.i18n import tr
 
 from .feuille                import Feuille
 from desWidgetPlusieursPlie import Ui_WidgetPlusieursPlie 
 
+from .politiquesValidation   import PolitiquePlusieurs
+from .qtSaisie               import SaisieValeur
+
+pattern_blanc = re.compile(r"^\s*$")
+
 
 class MonWidgetPlusieursPlie (Ui_WidgetPlusieursPlie,Feuille):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        #print "MonWidgetPlusieursBase", nom
+        print "MonWidgetPlusieursBase", nom
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.AAfficher=self.lineEditVal
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
-        
+        if self.node.item.has_into() : 
+           self.lineEditVal.setReadOnly(True)
+           self.lineEditVal.setStyleSheet("background:rgb(235,235,235);\n")
+           self.lineEditVal.setToolTip("Ensemble discret de valeurs possibles, pas de Saisie Manuelle")
+           #self.lineEditVal.setPen(QtGui.QColor(0,0,200))
+          #b=QBrush(Qt.DiagCrossPattern)
+           #b.setColor(QColor(255,100,0))
+           #self.lineEditVal.setBrush(b)
+        else :
+           self.lineEditVal.returnPressed.connect(self.valeurEntree)
         self.BVisuListe.clicked.connect(self.selectWidgetDeplie)
 
 
@@ -51,11 +65,40 @@ class MonWidgetPlusieursPlie (Ui_WidgetPlusieursPlie,Feuille):
        self.listeValeursCourantes=self.node.item.GetListeValeurs()
        if self.listeValeursCourantes != []  :  self.lineEditVal.setText(str(self.listeValeursCourantes))
        else : self.lineEditVal.setText("")
-       self.lineEditVal.setReadOnly(True)
+       self.politique=PolitiquePlusieurs(self.node,self.editor)
        return
 
   def selectWidgetDeplie(self):
       self.editor.listeDesListesOuvertes.add(self.node.item)
       self.reaffichePourDeplier()
 
+  def valeurEntree(self):
+      valeurTexte=self.lineEditVal.text()
+      print (valeurTexte[0])
+      print (valeurTexte[-1])
+      if valeurTexte[0] == '[' or valeurTexte[0] == '('   : valeurTexte = valeurTexte[1:]
+      if valeurTexte[-1] == ']' or valeurTexte[-1] == ')' : valeurTexte = valeurTexte[:-1]
+      print (valeurTexte)
+      listeValeursBrutes=valeurTexte.split(',')
+      if listeValeursBrutes == [] or listeValeursBrutes == None : 
+         self.lineEditVal.setText(str(self.listeValeursCourantes))
+         return
+      listeValeur=[]
+      for v in listeValeursBrutes: 
+          if v == None or pattern_blanc.match(v) : 
+             self.editor.affiche_infos(str(listeValeur)+'   Valeurs saisies incorrectes',Qt.red)
+             return
+          liste,validite=SaisieValeur.TraiteLEValeur(self,str(v))
+          if not validite : 
+             self.editor.affiche_infos(str(listeValeur) +'   Valeurs saisies incorrectes',Qt.red)
+             return
+          listeValeur.append(liste[0])
+      validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(listeValeur,-1,[])
+      if validite : 
+         self.node.item.set_valeur(listeValeur)
+         self.node.item.isvalid()
+         self.setValeurs()
+      else :
+         self.editor.affiche_infos(str(listeValeur) + '   ' +comm,Qt.red)
+         self.lineEditVal.setText('')
        
index 4ea5a099df15c2fb4eab0106dad7239ed002eb0b..82390b6fb2917013b112fcf37faee789ae3cea7a 100644 (file)
@@ -124,7 +124,8 @@ class SaisieValeur(object):
         elif type(valeur) == bytes:
              listeValeurs=valeur.split(',')
         else:
-          listeValeurs.append(valeurBrute)
+          #listeValeurs.append(valeurBrute)
+          listeValeurs.append(valeur)
 
         return listeValeurs,1