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.rep_user = os.path.join(os.environ['HOME'],nomDir)
\r
56 self.parent=appli.top
\r
57 self.appli.mode_nouv_commande='initial'
\r
58 else: self.parent=None
\r
62 def setValeurs(self):
\r
63 #---------------------
\r
65 # Valeurs par defaut
\r
66 if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user)
\r
67 self.initialdir = self.rep_user
\r
68 self.path_doc = self.rep_user
\r
69 self.savedir = self.rep_user
\r
70 self.exec_acrobat = self.rep_user
\r
72 #Lecture des fichiers utilisateurs
\r
73 self.lecture_fichier_ini_standard()
\r
74 if hasattr(self,'make_ssCode'):
\r
75 self.make_ssCode(self.ssCode)
\r
76 self.lecture_fichier_ini_utilisateur()
\r
77 self.lecture_catalogues()
\r
79 #--------------------------------------
\r
80 def lecture_fichier_ini_standard(self):
\r
81 #--------------------------------------
\r
82 # Verifie l'existence du fichier "standard"
\r
83 # appelle la lecture de ce fichier
\r
84 name='prefs_'+self.appli.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
94 #--------------------------------------
\r
95 def lecture_fichier_ini_utilisateur(self):
\r
96 #--------------------------------------
\r
97 # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
\r
98 self.fic_ini_utilisateur = os.path.join(self.rep_user,self.prefsUser)
\r
99 if not os.path.isfile(self.fic_ini_utilisateur): return
\r
101 txt = utils.read_file(self.fic_ini_utilisateur)
\r
102 from styles import style
\r
107 l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
\r
108 QMessageBox.critical( None, "Import du fichier de Configuration",
\r
109 "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )
\r
111 for k in self.labels_user :
\r
113 setattr(self,k,d[k])
\r
118 #--------------------------------------
\r
119 def lecture_catalogues(self):
\r
120 #--------------------------------------
\r
121 rep_mat=" " # Compatibilite Aster
\r
122 if hasattr(self,"catalogues") : return
\r
124 fic_ini = os.path.join(self.repIni,self.cataFile)
\r
125 if not os.path.isfile(fic_ini) :
\r
126 QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues",
\r
127 "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )
\r
130 txt = utils.read_file(fic_ini)
\r
134 self.catalogues=d["catalogues"]
\r
136 l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
\r
137 QMessageBox.critical( None, "Import du fichier de Configuration",
\r
138 "Erreur à la lecture du fichier de configuration " + fic_ini )
\r
143 #--------------------------------------
\r
144 def save_params(self):
\r
145 #--------------------------------------
\r
147 # les nouveaux paramètres dans le fichier de configuration utilisateur
\r
150 for clef in self.labels_user :
\r
151 if hasattr(self,clef):
\r
152 valeur=getattr(self,clef)
\r
153 texte= texte + clef+" = " + repr(valeur) +"\n"
\r
154 f=open(self.fic_ini_utilisateur,'w+')
\r