Salome HOME
synchronisation avec Yoann
[tools/eficas.git] / InterfaceQT4 / configuration.py
index a76c76017088ca785407741b481fd629597d5855..8b7bb7d5ae9dec3a4fe1b5c169b8926628192320 100644 (file)
-# -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2013   EDF R&D\r
-#\r
-# This library is free software; you can redistribute it and/or\r
-# modify it under the terms of the GNU Lesser General Public\r
-# License as published by the Free Software Foundation; either\r
-# version 2.1 of the License.\r
-#\r
-# This library is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-# Lesser General Public License for more details.\r
-#\r
-# You should have received a copy of the GNU Lesser General Public\r
-# License along with this library; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
-#\r
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
-#\r
-"""\r
-    Ce module sert pour charger les parametres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-import os, sys, string, types, re\r
-import traceback\r
-from PyQt4.QtGui import QMessageBox\r
-from  Editeur.utils import read_file\r
-from Extensions.i18n import tr\r
-\r
-class CONFIG_BASE:\r
-\r
-  #-------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-------------------------------\r
-\r
-  # Classe de base permettant de lire, afficher\r
-  # et sauvegarder les fichiers utilisateurs \r
-  # On a deux directories : la directory generale (Repertoire d install + Nom du code\r
-  #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper\r
-  # et la directorie de l utilisateur \r
-  #                      HOME/.Eficas_Openturns\r
-  # Le fichier prefs.py va etre lu dans la directory generale \r
-  #         puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE} \r
-  #         par celui de l utilisateur\r
-  # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite\r
-  # dans le fichier general sinon\r
-      self.appli   = appli  \r
-      self.code    = appli.code\r
-      self.salome  = appli.salome\r
-      if self.salome : self.name="editeur_salome.ini"\r
-      else           : self.name="editeur.ini"\r
-      self.rep_mat = None\r
-      self.repIni  = repIni\r
-      self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',appli.code)\r
-      self.mode_nouv_commande='initial'\r
-     \r
-\r
-      self.setValeursParDefaut()\r
-      \r
-      self.lecture_fichier_ini_standard()\r
-      self.lecture_fichier_ini_integrateur()\r
-      self.lecture_fichier_ini_utilisateur()\r
-\r
-      #Particularite des schemas MAP\r
-      if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode)\r
-\r
-      if self.appli: \r
-         self.parent=appli.top\r
-         self.appli.mode_nouv_commande= self.mode_nouv_commande\r
-      else:         self.parent=None\r
-      if not os.path.isdir(self.savedir) : self.savedir=os.environ['HOME']\r
-      \r
-\r
-\r
-  def setValeursParDefaut(self):\r
-  #-----------------------------\r
-  \r
-      # Valeurs par defaut\r
-      if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user)\r
-      self.path_doc     = os.path.abspath(os.path.join(self.repIni,'..','Doc'))\r
-      self.exec_acrobat = 'acroread'\r
-      nomDir="Eficas_"+self.code\r
-      self.savedir   = os.path.abspath(os.path.join(os.environ['HOME'],nomDir))\r
\r
-  #--------------------------------------\r
-  def lecture_fichier_ini_standard(self):\r
-  #--------------------------------------\r
-\r
-      name='prefs_'+self.appli.code\r
-      prefsCode=__import__(name)\r
-      for k in dir(prefsCode):\r
-          if (k[0:1] != "__" and k[-1:-2] !='__'):\r
-             valeur=getattr(prefsCode,k)\r
-             setattr(self,k,valeur)\r
-       \r
-\r
-\r
-  #--------------------------------------\r
-  def lecture_fichier_ini_integrateur(self):\r
-  #--------------------------------------\r
-  # Verifie l'existence du fichier "standard"\r
-  # appelle la lecture de ce fichier\r
-      clef="PREFS_CATA_"+self.code\r
-      try :\r
-        repIntegrateur=os.path.abspath(os.environ[clef])\r
-      except :\r
-        return\r
-      \r
-      fic_ini_integrateur=os.path.join(repIntegrateur,self.name)\r
-      if not os.path.isfile(fic_ini_integrateur): return\r
-      txt = read_file(fic_ini_integrateur)\r
-      d=locals()\r
-      try:\r
-         exec txt in d\r
-      except :\r
-         QMessageBox.critical( None, tr("Import du fichier de Configuration"), \r
-                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))\r
-         return\r
-      self.labels_eficas.append('rep_aide')\r
-      for k in self.labels_eficas :\r
-         try :\r
-            setattr(self,k,d[k])\r
-         except :\r
-            pass\r
-      #Glut pour les repertoires materiaux\r
-      #et pour la doc\r
-      for k in d.keys() :\r
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):\r
-             setattr(self,k,d[k])\r
-\r
-\r
-  #--------------------------------------\r
-  def lecture_fichier_ini_utilisateur(self):\r
-  #--------------------------------------\r
-  # Surcharge les parametres standards par les parametres utilisateur s'ils existent\r
-      self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name)\r
-      if not os.path.isfile(self.fic_ini_utilisateur): return\r
-\r
-      txt = read_file(self.fic_ini_utilisateur)\r
-      d=locals()\r
-      try:\r
-         exec txt in d\r
-      except :\r
-         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])\r
-         QMessageBox.critical( None, tr("Import du fichier de Configuration"), \r
-                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))\r
-      for k in self.labels_user :\r
-         try :\r
-            setattr(self,k,d[k])\r
-         except :\r
-            pass\r
-      for k in d.keys() :\r
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):\r
-             setattr(self,k,d[k])\r
-\r
-  #--------------------------------------\r
-  def save_params(self):\r
-  #--------------------------------------\r
-  # sauvegarde\r
-  # les nouveaux parametres dans le fichier de configuration utilisateur\r
-  #\r
-      texte=""\r
-      for clef in self.labels_user :\r
-          if hasattr(self,clef):\r
-             valeur=getattr(self,clef)\r
-             texte= texte + clef+"     = " + repr(valeur) +"\n"\r
-      #Glut pour les repertoires materiaux\r
-      #et pour la doc\r
-      for k in dir(self):\r
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):\r
-             valeur=getattr(self,k)\r
-             texte= texte + k+"        = " + repr(valeur) +"\n"\r
-\r
-      f=open(self.fic_ini_utilisateur,'w+')\r
-      f.write(texte) \r
-      f.close()\r
-#\r
-\r
+# -*- 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
+#
+"""
+    Ce module sert pour charger les parametres de configuration d'EFICAS
+"""
+# Modules Python
+from __future__ import absolute_import
+try :
+   from builtins import str
+   from builtins import range
+   from builtins import object
+except : pass
+
+import os, sys,  types, re
+import traceback
+from PyQt5.QtWidgets import QMessageBox
+from  Editeur.utils import read_file
+from Extensions.i18n import tr
+
+class CONFIG_BASE(object):
+
+  #-------------------------------
+  def __init__(self,appli,repIni):
+  #-------------------------------
+
+  # Classe de base permettant de lire, afficher
+  # et sauvegarder les fichiers utilisateurs 
+  # On a deux directories : la directory generale (Repertoire d install + Nom du code
+  #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
+  # et la directorie de l utilisateur 
+  #                      HOME/.Eficas_Openturns
+  # Le fichier prefs.py va etre lu dans la directory generale 
+  #         puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE} 
+  #         par celui de l utilisateur
+  # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
+  # dans le fichier general sinon
+      self.appli   = appli  
+      self.code    = appli.code
+      self.salome  = appli.salome
+      if self.salome : self.name="editeur_salome.ini"
+      else           : self.name="editeur.ini"
+      self.rep_mat = None
+      self.repIni  = repIni
+      if sys.platform[0:5]=="linux" :
+              self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',appli.code)
+      else :
+              self.rep_user   = os.path.join('C:/','.config/Eficas',appli.code)
+
+     
+
+      self.setValeursParDefaut()
+      
+      self.lecture_fichier_ini_standard()
+      self.lecture_fichier_ini_integrateur()
+      self.lecture_fichier_ini_utilisateur()
+
+      #Particularite des schemas MAP
+      if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode)
+
+      if self.appli: self.parent=appli.top
+      else:         self.parent=None
+
+      if not os.path.isdir(self.savedir) :
+        if sys.platform[0:5]=="linux" :
+          self.savedir=os.environ['HOME']
+        else:
+          self.savedir='C:/'
+      
+
+
+  def setValeursParDefaut(self):
+  #-----------------------------
+  
+      # Valeurs par defaut
+      if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user)
+      self.path_doc     = os.path.abspath(os.path.join(self.repIni,'..','Doc'))
+      self.exec_acrobat = 'acroread'
+      nomDir="Eficas_"+self.code
+      if sys.platform[0:5]=="linux" :
+        self.savedir   = os.path.abspath(os.path.join(os.environ['HOME'],nomDir))
+      else:
+        self.savedir = os.path.abspath('C:/')
+      self.mode_nouv_commande='initial'
+      self.affiche="alpha"
+      self.closeAutreCommande = False
+      self.closeFrameRechercheCommande = False
+      self.closeEntete = False
+      self.closeArbre = False
+      self.force_langue=False
+      self.suiteTelemac=False
+      self.nombreDeBoutonParLigne=0
+      self.translatorFichier=None
+      self.dicoImages= {}
+      self.simpleClic= False
+      self.afficheOptionnelVide=False
+
+  #--------------------------------------
+  def lecture_fichier_ini_standard(self):
+  #--------------------------------------
+
+      name='prefs_'+self.appli.code
+      prefsCode=__import__(name)
+      for k in dir(prefsCode):
+          if (k[0:1] != "__" and k[-1:-2] !='__'):
+             valeur=getattr(prefsCode,k)
+             setattr(self,k,valeur)
+       
+
+
+  #--------------------------------------
+  def lecture_fichier_ini_integrateur(self):
+  #--------------------------------------
+  # Verifie l'existence du fichier "standard"
+  # appelle la lecture de ce fichier
+      clef="PREFS_CATA_"+self.code
+      try :
+        repIntegrateur=os.path.abspath(os.environ[clef])
+      except :
+        return
+      
+      fic_ini_integrateur=os.path.join(repIntegrateur,self.name)
+      if not os.path.isfile(fic_ini_integrateur): return
+      txt = read_file(fic_ini_integrateur)
+      d=locals()
+      try:
+         exec(txt, d)
+      except :
+         QMessageBox.critical( None, tr("Import du fichier de Configuration"), 
+                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
+         return
+      self.labels_eficas.append('rep_aide')
+      for k in self.labels_eficas :
+         try :
+            setattr(self,k,d[k])
+         except :
+            pass
+      #Glut pour les repertoires materiaux
+      #et pour la doc
+      for k in d :
+          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+             setattr(self,k,d[k])
+
+
+  #--------------------------------------
+  def lecture_fichier_ini_utilisateur(self):
+  #--------------------------------------
+  # Surcharge les parametres standards par les parametres utilisateur s'ils existent
+      self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name)
+      if not os.path.isfile(self.fic_ini_utilisateur): return
+
+      txt = read_file(self.fic_ini_utilisateur)
+      d=locals()
+      try:
+         exec(txt, d)
+      except :
+         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+         QMessageBox.critical( None, tr("Import du fichier de Configuration"), 
+                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
+      for k in self.labels_user :
+         try :
+            setattr(self,k,d[k])
+         except :
+            pass
+      for k in d :
+          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+             setattr(self,k,d[k])
+
+  #--------------------------------------
+  def save_params(self):
+  #--------------------------------------
+  # sauvegarde
+  # les nouveaux parametres dans le fichier de configuration utilisateur
+  #
+      texte=""
+      for clef in self.labels_user :
+          if hasattr(self,clef):
+             valeur=getattr(self,clef)
+             texte= texte + clef+"     = " + repr(valeur) +"\n"
+      #Glut pour les repertoires materiaux
+      #et pour la doc
+      for k in dir(self):
+          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+             valeur=getattr(self,k)
+             texte= texte + k+"        = " + repr(valeur) +"\n"
+
+      f=open(self.fic_ini_utilisateur,'w+')
+      f.write(texte) 
+      f.close()
+#
+