X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FgereIcones.py;h=5ab135b5cc95a2c9e5a1025f4f8853ee5a970f7d;hb=96176d0080e0d4efbd29d98c0df700a64a82acdc;hp=4b4e30b1f9631cb1b40516b2b012128640a5c018;hpb=90d2156f7eb0c5ae8fb2bf75873af50422165642;p=tools%2Feficas.git diff --git a/InterfaceQT4/gereIcones.py b/InterfaceQT4/gereIcones.py index 4b4e30b1..5ab135b5 100644 --- a/InterfaceQT4/gereIcones.py +++ b/InterfaceQT4/gereIcones.py @@ -18,24 +18,27 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Modules Python -import string,types,os,re,sys +from __future__ import absolute_import +from __future__ import print_function +try : + from builtins import str + from builtins import object +except : pass + +import types,os,re,sys import traceback -from determine import monEnvQT5 -if monEnvQT5 : - from PyQt5.QtWidgets import QMessageBox, QFileDialog , QMenu - from PyQt5.QtGui import QIcon - from PyQt5.QtCore import QFileInfo, Qt, QSize, QVariant +import six -else: - from PyQt4.QtGui import * - from PyQt4.QtCore import * +from PyQt5.QtWidgets import QMessageBox, QFileDialog , QMenu, QPushButton, QTreeView ,QListView, QAbstractItemView +from PyQt5.QtGui import QIcon +from PyQt5.QtCore import QFileInfo, Qt, QSize, QVariant from Extensions.i18n import tr listeSuffixe=('bmp','png','jpg' ,'txt','med') -class FacultatifOuOptionnel: +class FacultatifOuOptionnel(object): def setReglesEtAide(self): listeRegles=() @@ -48,22 +51,20 @@ class FacultatifOuOptionnel: else : icon3=QIcon(self.repIcon+"/lettreRblanc30.png") self.RBRegle.setIcon(icon3) - if monEnvQT5 :self.RBRegle.clicked.connect(self.viewRegles) - else : self.connect( self.RBRegle,SIGNAL("clicked()"),self.viewRegles) + self.RBRegle.clicked.connect(self.viewRegles) cle_doc=None if not hasattr(self,"RBInfo"):return icon=QIcon(self.repIcon+"/point-interrogation30.png") self.RBInfo.setIcon(icon) - from monWidgetCommande import MonWidgetCommande + from .monWidgetCommande import MonWidgetCommande if isinstance(self,MonWidgetCommande) and self.editor.code =="MAP": self.cle_doc = self.chercheDocMAP() else : self.cle_doc = self.node.item.get_docu() if self.cle_doc == None : self.RBInfo.close() - elif monEnvQT5 : self.RBInfo.clicked.connect (self.viewDoc) - else : self.connect (self.RBInfo,SIGNAL("clicked()"),self.viewDoc) + else : self.RBInfo.clicked.connect (self.viewDoc) def chercheDocMAP(self): @@ -71,7 +72,7 @@ class FacultatifOuOptionnel: clef=self.editor.CONFIGURATION.adresse+"/" except : return None - for k in self.editor.readercata.cata[0].JdC.dict_groupes.keys(): + for k in self.editor.readercata.cata[0].JdC.dict_groupes: if self.obj.nom in self.editor.readercata.cata[0].JdC.dict_groupes[k]: clef+=k break @@ -100,8 +101,7 @@ class FacultatifOuOptionnel: return icon=QIcon(self.repIcon+"/deleteRond.png") self.RBPoubelle.setIcon(icon) - if monEnvQT5 : self.RBPoubelle.clicked.connect(self.aDetruire) - else : self.connect(self.RBPoubelle,SIGNAL("clicked()"),self.aDetruire) + self.RBPoubelle.clicked.connect(self.aDetruire) def setIconesSalome(self): if not (hasattr(self,"RBSalome")): return @@ -115,8 +115,7 @@ class FacultatifOuOptionnel: if enable_salome_selection: icon=QIcon(self.repIcon+"/flecheSalome.png") self.RBSalome.setIcon(icon) - if monEnvQT5 : self.RBSalome.pressed.connect(self.BSalomePressed) - else : self.connect(self.RBSalome,SIGNAL("pressed()"),self.BSalomePressed) + self.RBSalome.pressed.connect(self.BSalomePressed) #PNPN --> Telemac A revoir surement # cela ou le catalogue grpma ou salomeEntry @@ -125,8 +124,7 @@ class FacultatifOuOptionnel: else : icon1=QIcon(self.repIcon+"/eye.png") self.RBSalomeVue.setIcon(icon1) - if monEnvQT5 : self.RBSalomeVue.clicked.connect(self.BView2DPressed) - else : self.connect(self.RBSalomeVue,SIGNAL("clicked()"),self.BView2DPressed) + self.RBSalomeVue.clicked.connect(self.BView2DPressed) else: self.RBSalome.close() self.RBSalomeVue.close() @@ -136,16 +134,17 @@ class FacultatifOuOptionnel: if not ( hasattr(self,"BFichier")): return mc = self.node.item.get_definition() mctype = mc.type[0] - if mctype == "Repertoire": + if mctype == "FichierOuRepertoire": + self.BFichierOuRepertoire=self.BFichier + self.BFichierOuRepertoire.clicked.connect(self.BFichierOuRepertoirePressed) + self.BVisuFichier.close() + elif mctype == "Repertoire": self.BRepertoire=self.BFichier - if monEnvQT5 : self.BRepertoire.clicked.connect(self.BRepertoirePressed) - else : self.connect(self.BRepertoire,SIGNAL("clicked()"),self.BRepertoirePressed) + self.BRepertoire.clicked.connect(self.BRepertoirePressed) self.BVisuFichier.close() else : - if monEnvQT5 : self.BFichier.clicked.connect(self.BFichierPressed) - else : self.connect(self.BFichier,SIGNAL("clicked()"),self.BFichierPressed) - if monEnvQT5 : self.BVisuFichier.clicked.connect(self.BFichierVisu) - else : self.connect(self.BVisuFichier,SIGNAL("clicked()"),self.BFichierVisu) + self.BFichier.clicked.connect(self.BFichierPressed) + self.BVisuFichier.clicked.connect(self.BFichierVisu) @@ -163,15 +162,21 @@ class FacultatifOuOptionnel: fichier=os.path.join(repIcon, 'minusnode.png') icon = QIcon(fichier) self.RBPlie.setIcon(icon) + if hasattr(self,"BVisuFichier") : + fichier=os.path.join(repIcon, 'visuFichier.png') + icon = QIcon(fichier) + self.BVisuFichier.setIcon(icon) def setRun(self): if hasattr(self.editor.appliEficas, 'mesScripts') : - if self.editor.code in self.editor.appliEficas.mesScripts.keys() : + if self.editor.code in self.editor.appliEficas.mesScripts : self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes - if self.obj.nom in self.dict_commandes_mesScripts.keys() : + if self.obj.nom in self.dict_commandes_mesScripts : self.ajoutScript() + icon=QIcon(self.repIcon+"/roue.png") + if hasattr(self,"RBRun"):self.RBRun.setIcon(icon) return if hasattr(self,"RBRun"): self.RBRun.close() if hasattr(self,"CBScripts"): self.CBScripts.close() @@ -208,7 +213,7 @@ class FacultatifOuOptionnel: if not hasattr(self,'CBScripts') : return # Cas des Widgets Plies self.dictCommandes={} listeCommandes=self.dict_commandes_mesScripts[self.obj.nom] - if type(listeCommandes) != types.TupleType: listeCommandes=(listeCommandes,) + if type(listeCommandes) != tuple: listeCommandes=(listeCommandes,) i=0 for commande in listeCommandes : conditionSalome=commande[3] @@ -216,12 +221,7 @@ class FacultatifOuOptionnel: self.CBScripts.addItem(commande[1]) self.dictCommandes[commande[1]]=i i=i+1 - if monEnvQT5: - #self.CBScripts.currentIndexChanged.connect(self.choixSaisi) - self.CBScripts.activated.connect(self.choixSaisi) - else : - #self.connect(self.CBScripts,SIGNAL("currentIndexChanged(int)"),self.choixSaisi) - self.connect(self.CBScripts,SIGNAL("activated(int)"),self.choixSaisi) + self.CBScripts.activated.connect(self.choixSaisi) def choixSaisi(self): fction=str(self.CBScripts.currentText()) @@ -229,12 +229,12 @@ class FacultatifOuOptionnel: self.node.AppelleFonction(numero,nodeTraite=self.node) #self.reaffiche() -class ContientIcones: +class ContientIcones(object): def BFichierVisu(self): fichier=self.lineEditVal.text() if fichier == None or str(fichier)=="" : return - from monViewTexte import ViewText + from .monViewTexte import ViewText try : if sys.platform[0:5]=="linux" : cmd="xdg-open "+ str(fichier) @@ -262,21 +262,22 @@ class ContientIcones: elif hasattr(mctype[0], "filters"): filters = mctype[0].filters else: - filters = None + filters = "" if len(mctype) > 2 and mctype[2] == "Sauvegarde": fichier = QFileDialog.getSaveFileName(self.appliEficas, tr('Sauvegarder Fichier'), self.appliEficas.CONFIGURATION.savedir, filters) else: + print(filters) fichier = QFileDialog.getOpenFileName(self.appliEficas, tr('Ouvrir Fichier'), self.appliEficas.CONFIGURATION.savedir, filters) - if monEnvQT5 : fichier=fichier[0] + fichier=fichier[0] if not(fichier == ""): - ulfile = os.path.abspath(unicode(fichier)) + ulfile = os.path.abspath(six.text_type(fichier)) self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] self.lineEditVal.setText(fichier) self.editor.affiche_commentaire(tr("Fichier selectionne")) @@ -284,26 +285,72 @@ class ContientIcones: if (QFileInfo(fichier).suffix() in listeSuffixe ): self.image=fichier if (not hasattr(self,"BSelectInFile")): - self.BSelectInFile = QPushButton(self.Widget8) - self.BSelectInFile.setMinimumSize(QSize(140,40)) - self.BSelectInFile.setObjectName("BSelectInFile") - self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1) - self.BSelectInFile.setText(tr("Selection")) - if monEnvQT5 : self.BSelectInFile.clicked.connect(self.BSelectInFilePressed) - else : self.connect(self.BSelectInFile,SIGNAL("clicked()"),self.BSelectInFilePressed) + try : + self.BSelectInFile = QPushButton(self) + self.BSelectInFile.setMinimumSize(QSize(140,40)) + self.BSelectInFile.setObjectName("BSelectInFile") + self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1) + self.BSelectInFile.setText(tr("Selection")) + self.BSelectInFile.clicked.connect(self.BSelectInFilePressed) + except : + pass else : self.BSelectInFile.setVisible(1) + elif hasattr(self, "BSelectInFile"): self.BSelectInFile.setVisible(0) + def BFichierOuRepertoirePressed(self): + self.fileName="" + print (0) + self.file_dialog=QFileDialog() + print (1) + self.file_dialog.setFileMode(QFileDialog.Directory); + print (2) + self.file_dialog.setFileMode(QFileDialog.Directory|QFileDialog.ExistingFiles) + print (3) + self.file_dialog.setOption(QFileDialog.DontUseNativeDialog,True); + self.file_dialog.setWindowTitle('Choose File or Directory') + self.explore(self.file_dialog) + self.file_dialog.exec_() + if self.fileName == "" : return + self.lineEditVal.setText(self.fileName) + self.LEValeurPressed() + + + def explore(self,widget): + for c in widget.children() : + if isinstance(c, QTreeView) : + c.clicked.connect (self.changeBoutonOpen) + self.monTreeView=c + try : + if c.text() == "&Open" : self.monBoutonOpen=c + except : pass + self.explore(c) + + + def changeBoutonOpen(self): + self.monBoutonOpen.setEnabled(True) + self.monBoutonOpen.setText("Choose") + self.monBoutonOpen.clicked.connect(self.monBoutonOpenClicked) + index = self.monTreeView.currentIndex(); + self.fileName2 = self.monTreeView.model().data(index) + + def monBoutonOpenClicked(self): + try : + self.fileName=self.file_dialog.selectedFiles()[0] + except : + self.fileName=self.file_dialog.directory().absolutePath() + self.file_dialog.close() + self.file_dialog=None + def BRepertoirePressed(self): directory = QFileDialog.getExistingDirectory(self.appliEficas, directory = self.appliEficas.CONFIGURATION.savedir, options = QFileDialog.ShowDirsOnly) - #if monEnvQT5 : directory=directory[0] if not (directory == "") : - absdir = os.path.abspath(unicode(directory)) + absdir = os.path.abspath(six.text_type(directory)) self.appliEficas.CONFIGURATION.savedir = os.path.dirname(absdir) self.lineEditVal.setText(directory) self.LEValeurPressed() @@ -325,14 +372,14 @@ class ContientIcones: if "GROUP_MA" in e: kwType = "GROUP_MA" if 'grno' in repr(kwType): kwType = "GROUP_NO" - if 'grma' in repr(kwType): kwType = "GROUP_NO" + if 'grma' in repr(kwType): kwType = "GROUP_MA" if kwType in ("GROUP_NO","GROUP_MA"): selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) mc = self.node.item.get_definition() - if (isinstance(mc.type,types.TupleType) and len(mc.type) > 1 and "(*.med)" in mc.type[1] ): + if (isinstance(mc.type,tuple) and len(mc.type) > 1 and "(*.med)" in mc.type[1] ): selection, commentaire = self.appliEficas.selectMeshFile(editor=self.editor) #print selection, commentaire if commentaire != "" : @@ -345,7 +392,7 @@ class ContientIcones: return from Accas import SalomeEntry - if isinstance(kwType, types.ClassType) and issubclass(kwType, SalomeEntry): + if isinstance(kwType, type) and issubclass(kwType, SalomeEntry): selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor) if commentaire !="" :