-# -*- coding: utf-8 -*-\r
-# CONFIGURATION MANAGEMENT OF EDF VERSION\r
-# ======================================================================\r
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG\r
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
-# (AT YOUR OPTION) ANY LATER VERSION.\r
-#\r
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
-#\r
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
-#\r
-#\r
-# ======================================================================\r
-"""\r
- Ce module sert pour charger les paramètres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-import os, sys, string, types, re\r
-import traceback\r
-from PyQt4.QtGui import *\r
-from utils import read_file\r
-\r
-# Modules Eficas\r
-from Editeur import utils\r
-\r
-class CONFIG_BASE:\r
-\r
- #--------------------------------------\r
- def __init__(self,appli,repIni,nomDir):\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 instal + 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 puis surcharge eventuellement \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
- self.repIni = repIni\r
- self.REPINI = repIni\r
- self.rep_user = os.path.join(os.environ['HOME'],nomDir)\r
- \r
- if self.appli: \r
- self.parent=appli.top\r
- self.appli.mode_nouv_commande='initial'\r
- else: self.parent=None\r
-\r
-\r
-\r
- def setValeurs(self):\r
- #---------------------\r
- \r
- # Valeurs par defaut\r
- if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user)\r
- self.initialdir = self.rep_user\r
- self.path_doc = self.rep_user\r
- self.savedir = self.rep_user\r
- self.exec_acrobat = self.rep_user\r
- \r
- #Lecture des fichiers utilisateurs\r
- self.lecture_fichier_ini_standard()\r
- self.lecture_fichier_ini_utilisateur()\r
- self.lecture_catalogues()\r
-\r
- #--------------------------------------\r
- def lecture_fichier_ini_standard(self):\r
- #--------------------------------------\r
- # Verifie l'existence du fichier "standard"\r
- # appelle la lecture de ce fichier\r
- import prefs\r
- name='prefs_'+prefs.code\r
- prefsCode=__import__(name)\r
- self.prefsUser=name+".py"\r
- for k in self.labels_eficas :\r
- try :\r
- valeur=getattr(prefsCode,k)\r
- setattr(self,k,valeur)\r
- except :\r
- pass\r
- if hasattr(self,'map_path') :\r
- oldPath=self.map_path\r
- \r
-\r
- #--------------------------------------\r
- def lecture_fichier_ini_utilisateur(self):\r
- #--------------------------------------\r
- # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent\r
- self.fic_ini_utilisateur = os.path.join(self.rep_user,self.prefsUser)\r
- if not os.path.isfile(self.fic_ini_utilisateur): return\r
-\r
- txt = utils.read_file(self.fic_ini_utilisateur)\r
- from styles import style\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, "Import du fichier de Configuration", \r
- "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )\r
- sys.exit(0)\r
- for k in self.labels_user :\r
- try :\r
- setattr(self,k,d[k])\r
- except :\r
- pass\r
-\r
-\r
- #--------------------------------------\r
- def lecture_catalogues(self):\r
- #--------------------------------------\r
- rep_mat=" " # Compatibilite Aster\r
- if hasattr(self,"catalogues") : return\r
- \r
- fic_ini = os.path.join(self.repIni,self.cataFile)\r
- if not os.path.isfile(fic_ini) :\r
- QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues", \r
- "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )\r
- sys.exit(0)\r
-\r
- txt = utils.read_file(fic_ini)\r
- d=locals()\r
- try:\r
- exec txt in d\r
- self.catalogues=d["catalogues"]\r
- except :\r
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])\r
- QMessageBox.critical( None, "Import du fichier de Configuration", \r
- "Erreur à la lecture du fichier de configuration " + fic_ini )\r
- sys.exit(0)\r
-\r
-\r
-\r
- #--------------------------------------\r
- def save_params(self):\r
- #--------------------------------------\r
- # sauvegarde\r
- # les nouveaux paramètres 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
- f=open(self.fic_ini_utilisateur,'w+')\r
- print self.fic_ini_utilisateur\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()
+#
+