X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FMGCleanerPlug%2FMGCleanerMonPlugDialog.py;h=3b2b88e525330272ab1e1ffad3ed05a9fd78c67b;hp=9b729c52d74dd2ac513787296a0f0af653680ef5;hb=6bac08c1a81f34d3f21c550bd92f83654b2546a5;hpb=071166030d371561258a1cb63d56113e6748018a diff --git a/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py b/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py index 9b729c52d..3b2b88e52 100644 --- a/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py +++ b/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2013 EDF R&D +# Copyright (C) 2013-2015 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 # License as published by the Free Software Foundation; either -# version 2.1 of the License. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,7 +22,7 @@ # Modules Eficas import os, subprocess -from MGCleanerPlugDialog import Ui_MGCleanerPlugDialog +from MGCleanerPlugDialog_ui import Ui_MGCleanerPlugDialog from MGCleanerMonViewText import MGCleanerMonViewText from PyQt4.QtGui import * from PyQt4.QtCore import * @@ -67,7 +67,7 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget): self.PB_MeshFile.setIcon(icon) self.PB_MeshFile.setToolTip("source mesh from a file in disk") - #Ces parametres ne sont pas remis à rien par le clean + #Ces parametres ne sont pas remis ?? rien par le clean self.paramsFile= os.path.abspath(os.path.join(os.environ["HOME"],".MGCleaner.dat")) self.LE_ParamsFile.setText(self.paramsFile) self.LE_MeshFile.setText("") @@ -78,24 +78,28 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget): #v1.setTop(10000.) v1.setDecimals(4) self.SP_MinHoleSize.setValidator(v1) + self.SP_MinHoleSize.titleForWarning="MinHoleSize" v2=QDoubleValidator(self) v2.setBottom(0.) #v2.setTop(10000.) v2.setDecimals(4) self.SP_ToleranceDisplacement.setValidator(v2) + self.SP_ToleranceDisplacement.titleForWarning="ToleranceDisplacement" v3=QDoubleValidator(self) v3.setBottom(0.) #v3.setTop(10000.) v3.setDecimals(4) self.SP_ResolutionLength.setValidator(v3) + self.SP_ResolutionLength.titleForWarning="ResolutionLength" v4=QDoubleValidator(self) v4.setBottom(0.) #v4.setTop(10000.) v4.setDecimals(4) self.SP_OverlapDistance.setValidator(v4) + self.SP_OverlapDistance.titleForWarning="OverlapDistance" self.resize(800, 500) self.clean() @@ -125,14 +129,20 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget): self.connect(self.CB_ComputedOverlapDistance,SIGNAL("stateChanged(int)"),self.SP_OverlapDistance.setDisabled) def PBHelpPressed(self): + import SalomePyQt + sgPyQt = SalomePyQt.SalomePyQt() try: mydir=os.environ["SMESH_ROOT_DIR"] except Exception: QMessageBox.warning( self, "Help", "Help unavailable $SMESH_ROOT_DIR not found") return - maDoc=mydir+"/share/doc/salome/gui/SMESH/MGCleaner/_downloads/mg-cleaner_user_manual.pdf" - command="xdg-open "+maDoc+";" - subprocess.call(command, shell=True) + + maDoc=mydir+"/share/doc/salome/gui/SMESH/MGCleaner/index.html" + sgPyQt.helpContext(maDoc,"") + + #maDoc=mydir+"/share/doc/salome/gui/SMESH/MGCleaner/_downloads/mg-cleaner_user_manual.pdf" + #command="xdg-open "+maDoc+";" + #subprocess.call(command, shell=True) def PBOKPressed(self): if not(self.PrepareLigneCommande()): @@ -253,12 +263,30 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget): """ def SP_toStr(self, widget): + """only for a QLineEdit widget""" #cr, pos=widget.validator().validate(res, 0) #n.b. "1,3" is acceptable !locale! try: - return str(float(widget.text())) + val=float(widget.text()) except: - widget.setProperty("text", "0.0") - return "0.0" + QMessageBox.warning(self, widget.titleForWarning, "float value is incorrect: '"+widget.text()+"'") + res=str(widget.validator().bottom()) + widget.setProperty("text", res) + return res + valtest=widget.validator().bottom() + if valtest!=None: + if valvaltest: + QMessageBox.warning(self, widget.titleForWarning, "float value is over maximum: "+str(val)+" > "+str(valtest)) + res=str(valtest) + widget.setProperty("text", res) + return res + return str(val) def getResumeData(self, separator="\n"): text="" @@ -325,15 +353,15 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget): def PBLoadPressed(self): """load last hypothesis saved in tail of file""" try: - f=open(self.paramsFile,"r") - except : - QMessageBox.warning(self, "File", "Unable to open "+self.paramsFile) - return + f=open(self.paramsFile,"r") + except: + QMessageBox.warning(self, "File", "Unable to open "+self.paramsFile) + return try: - text=f.read() - except : - QMessageBox.warning(self, "File", "Unable to read "+self.paramsFile) - return + text=f.read() + except: + QMessageBox.warning(self, "File", "Unable to read "+self.paramsFile) + return f.close() self.loadResumeData(text, separator="\n") @@ -504,7 +532,7 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget): self.commande+=" --overlap_distance " + self.SP_toStr(self.SP_OverlapDistance) self.commande+=" --overlap_angle " + str(self.SP_OverlapAngle.value()) return True - + def clean(self): self.RB_Check.setChecked(False) self.RB_Fix1.setChecked(False) @@ -533,7 +561,7 @@ def getDialog(): """ global __dialog if __dialog is None: - __dialog = MGCleanerMonPlugDialog() + __dialog = MGCleanerMonPlugDialog() #else : # __dialog.clean() return __dialog @@ -548,10 +576,10 @@ def TEST_standalone(): """ works only if a salome is launched yet with a study loaded to launch standalone python do: - /export/home/wambeke/2013/V6_main_MGC_CO6.4_64/APPLI/runSession + ./APPLI/runSession python or (do not works) - python /export/home/wambeke/2013/V6_main_MGC_CO6.4_64/INSTALL/SMESH/share/salome/plugins/smesh/MGCleanerMonPlugDialog.py + python ./INSTALL/SMESH/share/salome/plugins/smesh/MGCleanerMonPlugDialog.py """ import salome import SMESH @@ -566,7 +594,6 @@ def TEST_standalone(): # ============================================================================== # def TEST_MGCleanerMonPlugDialog(): - #print "TEST_MGCleanerMonPlugDialog" import sys from PyQt4.QtGui import QApplication from PyQt4.QtCore import QObject, SIGNAL, SLOT