X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonChoixCode.py;h=c78a9d5382e89c40bd408b0f18eb347e1eaf47a1;hb=96176d0080e0d4efbd29d98c0df700a64a82acdc;hp=0a81b985110277dcc93049ed3242da05e78d297c;hpb=cdd358f4041f957701ac10d86766a85baaef4f78;p=tools%2Feficas.git diff --git a/InterfaceQT4/monChoixCode.py b/InterfaceQT4/monChoixCode.py index 0a81b985..c78a9d53 100644 --- a/InterfaceQT4/monChoixCode.py +++ b/InterfaceQT4/monChoixCode.py @@ -1,40 +1,44 @@ # -*- coding: utf-8 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM 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 -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# 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. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# 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 # -# ====================================================================== # Modules Python # Modules Eficas -import os,sys -from desChoixCode import Ui_ChoixCode -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from __future__ import absolute_import +try : + from builtins import str +except : pass +import os,sys,re +from desChoixCode import Ui_ChoixCode +from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup +from PyQt5.QtGui import QPalette +from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize # Import des panels class MonChoixCode(Ui_ChoixCode,QDialog): """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes + Classe definissant le panel associe aux mots-cles qui demandent + a l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discretes """ def __init__(self, parentAppli=None): QDialog.__init__(self,parentAppli) @@ -43,26 +47,65 @@ class MonChoixCode(Ui_ChoixCode,QDialog): self.parentAppli=parentAppli self.verifieInstall() self.code=None - self.connect(self.pB_OK,SIGNAL("clicked()"),self.choisitCode) + self.pB_OK.clicked.connect(self.choisitCode) + self.pB_cancel.clicked.connect(self.sortie) + + def sortie(self): + QDialog.reject(self) def verifieInstall(self): - self.groupCodes=QButtonGroup(self) - for code in ('Aster','Cuve2dg','Openturns_Study','Openturns_Wrapper','Carmel3D'): - nom='rB_'+code - bouton=getattr(self,nom) + self.groupCodes=QButtonGroup(self.groupBox) + vars=list(os.environ.items()) + listeCode=('Aster','Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','PSEN_N1','Telemac','ZCracks',) + for code in listeCode: dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code)) - print dirCode try : l=os.listdir(dirCode) + bouton=QRadioButton(self.groupBox) + bouton.setText(code) self.groupCodes.addButton(bouton) + self.vlBouton.addWidget(bouton) except : - bouton.close() - + clef="PREFS_CATA_"+code + try : + repIntegrateur=os.path.abspath(os.environ[clef]) + l=os.listdir(repIntegrateur) + bouton=QRadioButton(self.groupBox) + bouton.setText(code) + bouton.show() + self.groupCodes.addButton(bouton) + except : + pass + listeCodesIntegrateur=[] + for k,v in vars: + if re.search('^PREFS_CATA_',k) != None and k[11:] not in listeCode: + listeCodesIntegrateur.append(k[11:]) + for code in listeCodesIntegrateur: + try : + clef="PREFS_CATA_"+code + repIntegrateur=os.path.abspath(os.environ[clef]) + l=os.listdir(repIntegrateur) + bouton=QRadioButton(self) + bouton.setText(code) + bouton.show() + self.groupCodes.addButton(bouton) + except : + pass + self.parentAppli.listeCode=self.parentAppli.listeCode+listeCodesIntegrateur def choisitCode(self): bouton=self.groupCodes.checkedButton() + if bouton==None : return code=str(bouton.text()) codeUpper=code.upper() self.parentAppli.code=codeUpper - sys.path.insert(0,os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))) + try : + dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code)) + l=os.listdir(dirCode) + sys.path.insert(0,dirCode) + except : + clef="PREFS_CATA_"+code + repIntegrateur=os.path.abspath(os.environ[clef]) + l=os.listdir(repIntegrateur) + sys.path.insert(0,repIntegrateur) self.close()