Salome HOME
Merge V9 dans Master
[tools/eficas.git] / InterfaceQT4 / monWidgetSimpBase.py
index 9788f9dc6245a42d649fd3177f70b924ee06cf1f..ef4c5cea810fda7efdd2b1d661fd0a85da1b12ea 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   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
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 # Modules Python
-import string,types,os
+from __future__ import absolute_import
+try :
+   from builtins import str
+except : pass
+
+import types,os
 
 # Modules Eficas
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
+from PyQt5.QtWidgets import QLineEdit
+from PyQt5.QtCore import  Qt
 from Extensions.i18n import tr
 
-from feuille               import Feuille
+from .feuille               import Feuille
 from desWidgetSimpBase     import Ui_WidgetSimpBase 
-from politiquesValidation  import PolitiqueUnique
-from qtSaisie              import SaisieValeur
+from .politiquesValidation  import PolitiqueUnique
+from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        print "MonWidgetSimpBase", nom
-        self.parentQt.commandesLayout.insertWidget(-1,self)
+        self.parentQt.commandesLayout.insertWidget(-1,self,1)
         self.setFocusPolicy(Qt.StrongFocus)
-        self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.LEValeurPressed)
+        self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
         self.AAfficher=self.lineEditVal
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
+        self.lineEditVal.focusInEvent=self.monFocusInEvent
+        self.lineEditVal.focusOutEvent=self.monFocusOutEvent
+
 
+  def monFocusInEvent(self,event):
+      self.editor.nodeEnCours = self
+      QLineEdit.focusInEvent(self.lineEditVal,event)
+
+  def monFocusOutEvent(self,event):
+      if self.oldValeurTexte != self.lineEditVal.text():
+         self.oldValeurTexte= self.lineEditVal.text()
+         self.LEvaleurPressed()
+      QLineEdit.focusOutEvent(self.lineEditVal,event)
 
   #def showEvent(self, event):
   #    if self.prendLeFocus==1 :
@@ -51,23 +67,25 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
   #    QWidget.showEvent(self,event)
 
   def setValeurs(self):
+       #print ("dans setValeurs")
        self.politique=PolitiqueUnique(self.node,self.editor)
-       valeur=self.node.item.get_valeur()
-       valeurTexte=self.politique.GetValeurTexte(valeur)
-       chaine=QString("")
+       valeur=self.node.item.getValeur()
+       valeurTexte=self.politique.getValeurTexte(valeur)
+       chaine=""
 
        if valeurTexte != None :
           from decimal import Decimal
           if isinstance(valeurTexte,Decimal):
              chaine=str(valeurTexte)
           elif repr(valeurTexte.__class__).find("PARAMETRE") > 0:
-             chaine = QString(repr(valeur))
+             chaine = repr(valeur)
           else :
              #PN ????
              #try :
              #  chaine=QString("").setNum(valeurTexte)
              #except :
-             chaine=QString(str(valeurTexte))
+             chaine=str(valeurTexte)
+       self.oldValeurTexte=chaine
        self.lineEditVal.setText(chaine)
 
 
@@ -79,22 +97,28 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
                   'Matrice' : tr(u'Une Matrice est attendue.  '),
                   'Fichier' : tr(u'Un fichier est attendu.  '),
                   'FichierNoAbs' : tr(u'Un fichier est attendu.  '),
-                  'Repertoire' : tr(u'Un repertoire est attendu.  ')}
-      if mc.type[0] != types.ClassType:
+                  'Repertoire' : tr(u'Un repertoire est attendu.  '),
+                  'FichierOuRepertoire' : tr(u'Un repertoire ou un fichier est attendu.  '),
+                  'Heure' : tr(u'Heure sous la forme HH:MM'),
+                  'Date' :  tr(u'Date sous la forme JJ/MM/AA')}
+      if mc.type[0] != type:
          commentaire = d_aides.get(mc.type[0], tr("Type de base inconnu"))
       else : commentaire=""
       return commentaire
 
 
-  def LEValeurPressed(self):
-      if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
-      SaisieValeur.LEValeurPressed(self)
+  def LEvaleurPressed(self):
+      # pour les soucis d encoding
+      try :
+        if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+      except : pass
+      SaisieValeur.LEvaleurPressed(self)
       self.parentQt.donneFocus()
       self.setValeurs()
       self.reaffiche()
       
       #if self.objSimp.parent.nom == "MODEL" :
-      #   if self.objSimp.isvalid():
+      #   if self.objSimp.isValid():
       #      self.objSimp.parent.change_fichier="1"
-            #self.node.item.parent.build_include(None,"")
+            #self.node.item.parent.buildInclude(None,"")