X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonChoixCode.py;h=34ef7c28446c3324d642384ba6f593b41274dd6e;hb=39b7b166eb606b80c9ac427811651b20db79bde2;hp=0a81b985110277dcc93049ed3242da05e78d297c;hpb=cdd358f4041f957701ac10d86766a85baaef4f78;p=tools%2Feficas.git diff --git a/InterfaceQT4/monChoixCode.py b/InterfaceQT4/monChoixCode.py index 0a81b985..34ef7c28 100644 --- a/InterfaceQT4/monChoixCode.py +++ b/InterfaceQT4/monChoixCode.py @@ -1,31 +1,35 @@ # -*- 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 +import os,sys,re from desChoixCode import Ui_ChoixCode -from PyQt4.QtGui import * -from PyQt4.QtCore import * - +from determine import monEnvQT5 +if monEnvQT5: + from PyQt5.QtWidgets import QDialog, QRadioButton + from PyQt5.QtGui import QPalette + from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize +else : + from PyQt4.QtGui import * + from PyQt4.QtCore import * # Import des panels @@ -43,26 +47,79 @@ class MonChoixCode(Ui_ChoixCode,QDialog): self.parentAppli=parentAppli self.verifieInstall() self.code=None - self.connect(self.pB_OK,SIGNAL("clicked()"),self.choisitCode) + if monEnvQT5: + self.pB_OK.clicked.connect(self.choisitCode) + self.pB_cancel.clicked.connect(self.sortie) + else : + self.connect(self.pB_OK,SIGNAL("clicked()"),self.choisitCode) + self.connect(self.pB_cancel,SIGNAL("clicked()"),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'): + self.groupCodes=QButtonGroup(self.groupBox) + vars=os.environ.items() + listeCode=('Aster','Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','Telemac','ZCracks',) + i=1 + for code in listeCode: nom='rB_'+code - bouton=getattr(self,nom) dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code)) - print dirCode try : l=os.listdir(dirCode) + bouton=QRadioButton(self) + bouton.setMinimumSize(QSize(0, 30)) + bouton.setText(code) + bouton.setGeometry(QRect(10,20+30*i, 300, 30)) + bouton.show() self.groupCodes.addButton(bouton) + i=i+1 except : - bouton.close() - + clef="PREFS_CATA_"+code + try : + repIntegrateur=os.path.abspath(os.environ[clef]) + l=os.listdir(repIntegrateur) + bouton=QRadioButton(self) + bouton.setGeometry(QRect(10,20+30*i, 300, 30)) + bouton.setMinimumSize(QSize(0, 30)) + bouton.setText(code) + bouton.show() + i=i+1 + 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.setGeometry(QRect(10,20+30*i, 300, 30)) + i=i+1 + bouton.setMinimumSize(QSize(0, 30)) + 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() 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()