X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FgereIcones.py;h=135b983e4b49022a2252e030c1cc43bed682717c;hb=b40366c908695962ba185fb4487e57143bf8927c;hp=e5f2bf2f94b1cb66bd84f0b47701540d4024f155;hpb=1b91010fc2c0a681db9177d6fa0e4e0af866ec31;p=tools%2Feficas.git diff --git a/InterfaceQT4/gereIcones.py b/InterfaceQT4/gereIcones.py index e5f2bf2f..135b983e 100644 --- a/InterfaceQT4/gereIcones.py +++ b/InterfaceQT4/gereIcones.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2013 EDF R&D +# Copyright (C) 2007-2021 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -28,8 +28,9 @@ except : pass import types,os,re,sys import traceback import six +import inspect -from PyQt5.QtWidgets import QMessageBox, QFileDialog , QMenu, QPushButton +from PyQt5.QtWidgets import QMessageBox, QFileDialog , QMenu, QPushButton, QTreeView ,QListView, QAbstractItemView from PyQt5.QtGui import QIcon from PyQt5.QtCore import QFileInfo, Qt, QSize, QVariant @@ -43,7 +44,7 @@ class FacultatifOuOptionnel(object): def setReglesEtAide(self): listeRegles=() try : - listeRegles = self.node.item.get_regles() + listeRegles = self.node.item.getRegles() except : pass if hasattr(self,"RBRegle"): @@ -62,18 +63,18 @@ class FacultatifOuOptionnel(object): if isinstance(self,MonWidgetCommande) and self.editor.code =="MAP": self.cle_doc = self.chercheDocMAP() else : - self.cle_doc = self.node.item.get_docu() + self.cle_doc = self.node.item.getDocu() if self.cle_doc == None : self.RBInfo.close() else : self.RBInfo.clicked.connect (self.viewDoc) def chercheDocMAP(self): try : - clef=self.editor.CONFIGURATION.adresse+"/" + clef=self.editor.maConfiguration.adresse+"/" except : return None - 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]: + for k in self.editor.readercata.cata.JdC.dict_groupes: + if self.obj.nom in self.editor.readercata.cata.JdC.dict_groupes[k]: clef+=k break clef+="/"+ self.obj.nom[0:-5].lower()+"/spec_"+self.obj.nom[0:-5].lower()+".html" @@ -89,13 +90,13 @@ class FacultatifOuOptionnel(object): QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee ")) def viewRegles(self): - self.node.AppelleBuildLBRegles() + self.node.appellebuildLBRegles() def setIconePoubelle(self): if not(hasattr(self,"RBPoubelle")):return - if self.node.item.object.isoblig() and not( hasattr(self.node.item.object,'isDeletable') ): + if self.node.item.object.isOblig() and not( hasattr(self.node.item.object,'isDeletable') ): icon=QIcon(self.repIcon+"/deleteRondVide.png") self.RBPoubelle.setIcon(icon) return @@ -134,7 +135,11 @@ class FacultatifOuOptionnel(object): 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 self.BRepertoire.clicked.connect(self.BRepertoirePressed) self.BVisuFichier.close() @@ -182,14 +187,10 @@ class FacultatifOuOptionnel(object): self.node.delete() def setValide(self): - #print " c est le moment de gerer le passage au suivant" if not(hasattr (self,'RBValide')) : return - icon = QIcon() - if self.node.item.object.isvalid() : - icon=QIcon(self.repIcon+"/ast-green-ball.png") - else : - icon=QIcon(self.repIcon+"/ast-red-ball.png") - self.RBValide.setIcon(icon) + couleur=self.node.item.getIconName() + monIcone = QIcon(self.repIcon+"/" + couleur + ".png") + self.RBValide.setIcon(monIcone) # il faut chercher la bonne fenetre def rendVisible(self): @@ -222,7 +223,7 @@ class FacultatifOuOptionnel(object): def choixSaisi(self): fction=str(self.CBScripts.currentText()) numero= self.dictCommandes[fction] - self.node.AppelleFonction(numero,nodeTraite=self.node) + self.node.appelleFonction(numero,nodeTraite=self.node) #self.reaffiche() class ContientIcones(object): @@ -233,7 +234,14 @@ class ContientIcones(object): from .monViewTexte import ViewText try : if sys.platform[0:5]=="linux" : - cmd="xdg-open "+ str(fichier) + #cmd="xdg-open "+ str(fichier) + #changer pour marcher dans l'EDC + #cmd="gedit "+ str(fichier) + from os.path import splitext + fileName,extension = splitext(fichier) + if extension in self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions: + cmd=self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions[extension] + " " + str(fichier) + else: cmd="xdg-open "+ str(fichier) os.system(cmd) else : os.startfile(str(fichier)) @@ -262,22 +270,22 @@ class ContientIcones(object): if len(mctype) > 2 and mctype[2] == "Sauvegarde": fichier = QFileDialog.getSaveFileName(self.appliEficas, tr('Sauvegarder Fichier'), - self.appliEficas.CONFIGURATION.savedir, + self.appliEficas.maConfiguration.savedir, filters) else: - print(filters) + #print(filters) fichier = QFileDialog.getOpenFileName(self.appliEficas, tr('Ouvrir Fichier'), - self.appliEficas.CONFIGURATION.savedir, + self.appliEficas.maConfiguration.savedir, filters) fichier=fichier[0] if not(fichier == ""): ulfile = os.path.abspath(six.text_type(fichier)) - self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] + self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0] self.lineEditVal.setText(fichier) - self.editor.affiche_commentaire(tr("Fichier selectionne")) - self.LEValeurPressed() + self.editor.afficheCommentaire(tr("Fichier selectionne")) + self.LEvaleurPressed() if (QFileInfo(fichier).suffix() in listeSuffixe ): self.image=fichier if (not hasattr(self,"BSelectInFile")): @@ -296,16 +304,56 @@ class ContientIcones(object): elif hasattr(self, "BSelectInFile"): self.BSelectInFile.setVisible(0) + def BFichierOuRepertoirePressed(self): + self.fileName="" + self.file_dialog=QFileDialog() + self.file_dialog.setFileMode(QFileDialog.Directory); + self.file_dialog.setFileMode(QFileDialog.Directory|QFileDialog.ExistingFiles) + 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, + directory = self.appliEficas.maConfiguration.savedir, options = QFileDialog.ShowDirsOnly) if not (directory == "") : absdir = os.path.abspath(six.text_type(directory)) - self.appliEficas.CONFIGURATION.savedir = os.path.dirname(absdir) + self.appliEficas.maConfiguration.savedir = os.path.dirname(absdir) self.lineEditVal.setText(directory) - self.LEValeurPressed() + self.LEvaleurPressed() def BSelectInFilePressed(self): from monSelectImage import MonSelectImage @@ -314,17 +362,17 @@ class ContientIcones(object): def BSalomePressed(self): - self.editor.affiche_commentaire("") + self.editor.afficheCommentaire("") selection=[] commentaire="" - genea=self.node.item.get_genealogie() + genea=self.node.item.getGenealogie() kwType = self.node.item.get_definition().type[0] for e in genea: if "GROUP_NO" in e: kwType = "GROUP_NO" 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) @@ -344,14 +392,14 @@ class ContientIcones(object): return from Accas import SalomeEntry - if isinstance(kwType, type) and issubclass(kwType, SalomeEntry): + if inspect.isclass(kwType) and issubclass(kwType, SalomeEntry): selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor) if commentaire !="" : - self.editor.affiche_infos(tr(str(commentaire))) + self.editor.afficheInfos(tr(str(commentaire))) if selection == [] : return - min,max=self.node.item.GetMinMax() + min,max=self.node.item.getMinMax() if max > 1 : self.ajoutNValeur(selection) return @@ -360,7 +408,7 @@ class ContientIcones(object): for geomElt in selection: monTexte=geomElt+"," monTexte= monTexte[0:-1] self.lineEditVal.setText(str(monTexte)) - self.LEValeurPressed() + self.LEvaleurPressed() def BView2DPressed(self): try : @@ -373,10 +421,10 @@ class ContientIcones(object): if valeur : ok, msgError = self.appliEficas.displayShape(valeur) if not ok: - self.editor.affiche_infos(msgError,Qt.red) + self.editor.afficheInfos(msgError,Qt.red) def BParametresPressed(self): - liste=self.node.item.get_liste_param_possible() + liste=self.node.item.getListeParamPossible() from monListeParamPanel import MonListeParamPanel MonListeParamPanel(liste=liste,parent=self).show()