1 # -*- coding: utf-8 -*-
\r
2 # CONFIGURATION MANAGEMENT OF EDF VERSION
\r
3 # ======================================================================
\r
4 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
\r
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
\r
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
\r
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
\r
8 # (AT YOUR OPTION) ANY LATER VERSION.
\r
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
\r
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
\r
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
\r
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
\r
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
\r
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
\r
17 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
\r
20 # ======================================================================
\r
22 Ce module sert pour charger les paramètres de configuration d'EFICAS
\r
25 import os, sys, string, types, re
\r
27 from PyQt4.QtGui import *
\r
28 from utils import read_file
\r
31 from Editeur import utils
\r
35 #--------------------------------------
\r
36 def __init__(self,appli,repIni,nomDir):
\r
37 #--------------------------------------
\r
39 # Classe de base permettant de lire, afficher
\r
40 # et sauvegarder les fichiers utilisateurs
\r
41 # On a deux directories : la directory generale (Repertoire d instal + Nom du code
\r
42 # Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
\r
43 # et la directorie de l utilisateur
\r
44 # HOME/.Eficas_Openturns
\r
45 # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement
\r
46 # par celui de l utilisateur
\r
47 # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
\r
48 # dans le fichier general sinon
\r
50 self.code = appli.code
\r
51 self.salome = appli.salome
\r
52 self.repIni = repIni
\r
53 self.REPINI = repIni
\r
54 self.rep_user = os.path.join(os.environ['HOME'],nomDir)
\r
57 self.parent=appli.top
\r
58 self.appli.mode_nouv_commande='initial'
\r
59 else: self.parent=None
\r
63 def setValeurs(self):
\r
64 #---------------------
\r
66 # Valeurs par defaut
\r
67 if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user)
\r
68 self.initialdir = self.rep_user
\r
69 self.path_doc = self.rep_user
\r
70 self.savedir = self.rep_user
\r
71 self.exec_acrobat = self.rep_user
\r
73 #Lecture des fichiers utilisateurs
\r
74 self.lecture_fichier_ini_standard()
\r
75 self.lecture_fichier_ini_utilisateur()
\r
76 self.lecture_catalogues()
\r
78 #--------------------------------------
\r
79 def lecture_fichier_ini_standard(self):
\r
80 #--------------------------------------
\r
81 # Verifie l'existence du fichier "standard"
\r
82 # appelle la lecture de ce fichier
\r
84 name='prefs_'+prefs.code
\r
85 prefsCode=__import__(name)
\r
86 self.prefsUser=name+".py"
\r
87 for k in self.labels_eficas :
\r
89 valeur=getattr(prefsCode,k)
\r
90 setattr(self,k,valeur)
\r
93 if hasattr(self,'map_path') :
\r
94 oldPath=self.map_path
\r
97 #--------------------------------------
\r
98 def lecture_fichier_ini_utilisateur(self):
\r
99 #--------------------------------------
\r
100 # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
\r
101 self.fic_ini_utilisateur = os.path.join(self.rep_user,self.prefsUser)
\r
102 if not os.path.isfile(self.fic_ini_utilisateur): return
\r
104 txt = utils.read_file(self.fic_ini_utilisateur)
\r
105 from styles import style
\r
110 l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
\r
111 QMessageBox.critical( None, "Import du fichier de Configuration",
\r
112 "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )
\r
114 for k in self.labels_user :
\r
116 setattr(self,k,d[k])
\r
121 #--------------------------------------
\r
122 def lecture_catalogues(self):
\r
123 #--------------------------------------
\r
124 rep_mat=" " # Compatibilite Aster
\r
125 if hasattr(self,"catalogues") : return
\r
127 fic_ini = os.path.join(self.repIni,self.cataFile)
\r
128 if not os.path.isfile(fic_ini) :
\r
129 QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues",
\r
130 "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )
\r
133 txt = utils.read_file(fic_ini)
\r
137 self.catalogues=d["catalogues"]
\r
139 l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
\r
140 QMessageBox.critical( None, "Import du fichier de Configuration",
\r
141 "Erreur à la lecture du fichier de configuration " + fic_ini )
\r
146 #--------------------------------------
\r
147 def save_params(self):
\r
148 #--------------------------------------
\r
150 # les nouveaux paramètres dans le fichier de configuration utilisateur
\r
153 for clef in self.labels_user :
\r
154 if hasattr(self,clef):
\r
155 valeur=getattr(self,clef)
\r
156 texte= texte + clef+" = " + repr(valeur) +"\n"
\r
157 f=open(self.fic_ini_utilisateur,'w+')
\r
158 print self.fic_ini_utilisateur
\r